4

Powershellを使用して、ファイルが含まれているフォルダーの名前を使用してフォルダー内のファイルの名前を変更したいと思います。したがって、C:\ tempディレクトリーには、「aaa」、「bbb」、および「ccc」という3つのフォルダーがあります。これらの各フォルダには、doc1.txt、doc2.txt、およびdoc3.txtという3つのファイルがあります。9つの.txtファイルすべての名前をfolderName+fileNameに変更したいので、名前を次のように変更します。

aaadoc1.txt
aaadoc2.txt
aaadoc3.txt
bbbdoc1.txt
bbbdoc2.txt
bbbdoc3.txt
cccdoc1.txt
cccdoc2.txt
cccdoc3.txt

誰かがこれにアプローチする方法について正しい方向に私を向けることができますか?

4

3 に答える 3

14

これにより、ファイルの名前が変更され、フォルダー名とファイル名の間にアンダースコア('_')が挿入されます。

Get-ChildItem C:\temp -Filter *.txt -Recurse | Rename-Item -NewName { $_.Directory.Name+'_'+$_.Name}
于 2012-08-05T12:33:04.913 に答える
1

[IO.Directory]::GetCurrentDirectory().split('\\')[-1]あなたがいるディレクトリが表示されます。

于 2012-08-05T12:05:45.277 に答える
1

これを試して

$dirname = resolve-path . | split-path -leaf
Get-ChildItem -Name | Foreach { Rename-Item $_  ( $dirname + $_ ) }

ファイルを破棄/削除しないように注意してください。無保証。

于 2012-08-05T12:12:23.837 に答える