2017-08-29 11 views
0

私はPowershellを使ってフォルダディレクトリの名前を一括して変更しようとしています。Powershell-名前を変更します。番号をファイル名に挿入

フォーマット済みのフォルダが多数あります。ab_xxxxx_xxxxx_xxx(xは数字です) 名前をab_xxxxxxx_xxxxxx_100xxxに変更します。

私は交換してくださいコマンドを使用して、名前の変更項目を使用しようとしていると、それはすべての_

例の後に100を追加します。 Get-ChildItem -Path ab_ _ _ * - ディレクトリ| ForEach-Objectに-Process {名前の変更、アイテムの$ -Path .nameの-NewName($ .nameの部-replace "_"、 "_100")}

私はまた、*ワイルドカードを使用してみましたが、それだけであることを追加新しいフォルダ名に変更します。

すべてのヘルプは大

答えて

2

を、私は、これはこのPowerShellコマンド

Get-ChildItem $path "ab_*" | where {$_.PSIsContainer} | ForEach-Object { Rename-Item $_.name ($_.name.insert(($_.name.LastIndexOf("_")+1),"100")) } 

を助けることができる願っています「ab_67890_12345_100323」に「ab_67890_12345_323」という名前のフォルダの名前を変更します。私はこれがあなたが欲しいものを望む。

+0

はい、まさに私が必要なものでした。ありがとうございました! –

1

をいただければ幸いセグメントは、常にアンダースコアで区切り、「100」は、最後のセグメントの先頭に追加する必要がある?されていることを、ルールですかもしそうなら、あなたはそのようにそれを行うことができます:

$x = "ab_839232_28921_1891" 
$y = $x -split '_' 
$y[-1] = "100" + $y[-1] 
$x = $y -join '_' 

$x 
ab_839232_28921_1001891 
+0

それは効率的ではありません – user3813463

関連する問題