2017-11-15 5 views
-4

は、だから私は、次のファイル名を持つファイルのグループを持っている:PowerShellは正規表現でバッチリネームしますか?

-2.txt
B-1.TXT
C-3.txt私は何かにそれらの名前を変更しようとしています

以下のような:

1.TXT -----> B-1.TXT

2.txt ----->-2.txt

3.txt ----- > c-3.txt

しかし、私は対応する正規表現が何であるか、そしてそれをPowerShellにコード化する方法を理解できません。スペースやアンダースコアを削除する例がたくさんありますが、文字列から削除するものは何もありません。あなたはカウンターを使用することができるとき

+2

(WHATIFを削除)してみてください? '$ counter'を1に設定して' ForEach'ループを起動し、各ループで 'Rename-Item $ file $ counter'を使って' $ counter ++ 'を返します –

+0

a-2.txtを2に変更したい.txt – abdulsamad

+0

a-2.txt〜1.txt – abdulsamad

答えて

-2

が、これはなぜ正規表現を使用し

Get-ChildItem "c:\temp" -file -Filter "*.txt" | where BaseName -Match ".-." | %{ 
$newname="{0}{1}" -f ($_.BaseName -split '-')[1], $_.Extension 
Rename-Item $_.FullName $newname -WhatIf 
} 
+0

は変更されていませんか? – abdulsamad

+0

私の間違いはうまくいった – abdulsamad

+0

ファイルの名前を変更するように頼んだことはありません 名前を変更するようなファイルもありません – abdulsamad

関連する問題