私はその中に多くのフォルダを含むファイルディレクトリを持っています。これらの各サブフォルダの中には、さまざまなファイルがあります。私は各ファイルを調べ、いくつかの項目の名前を変更し、それらの一部に拡張機能を追加したいと思います。私はこれを行うためにPowershellを使用しています。Powershellのファイルの名前を変更するサブフォルダを循環
ファイル名に「。」が付いています。例えば、 "_"で置き換える必要がある場合、 "wrfprs_d02.03"は "wrfprs_d02_03"でなければなりません。私は正常に次のコードで1つのフォルダにそれを行うことができました:
dir | rename-item -NewName {$_.name -replace "wrfprs_d02.","wrfprs_d02_"}
私はそれらの置換を行い、後に、私は「すべてはで始まるに起こるいくつかのファイルへの.grbの拡張機能を追加したいです「ワット、そして私は一つのフォルダの中にそれを行うことができた:私は戻って一つのフォルダからのステップと多くのフォルダの中に反復してそれを実行しようとすると
Get-ChildItem | Where-Object {$_.Name -match "^[w]"} | ren -new {$_.name + ".grb"}
、私のコードは動作しません。私は "Z:\ Windows.Documents \ My Documents \ Test_data \ extracted"という名前のディレクトリにあります。これには、反復処理を行うすべてのサブフォルダが含まれています。私の問題が何であるかに
$fileDirectory = "Z:\Windows.Documents\My Documents\Test_data\extracted"
foreach($file in Get-ChildItem $fileDirectory)
{
dir | rename-item -NewName {$_.name -replace "wrfprs_d02.","wrfprs_d02_"}
Get-ChildItem | Where-Object {$_.Name -match "^[w]"} | ren -new {$_.name + ".grb"}
}
任意のアイデア:私は、次のコードを使用していますか?
ありがとう!そのコードはほとんど私のために働いた。私は作業している特定のファイルのためにいくつかの変更を加えました。ファイル名が変更されています。 " Powershellウィンドウで "_"に設定しますが、Windowsエクスプローラを開くと、ピリオドは実際には下線に変わりません。拡張機能が追加されましたので、その部分が解決されました! – Amelia
あなたは正しいです、私たちは変更を加えましたが、実際には変更を保存しませんでした。私はそれを今適切な例で更新します。うまくいけば、これは私に知らせてくれます。 – JonnyBoy