4

使用 Powershell,我想通过使用文件所在文件夹的名称来重命名文件夹中的文件。所以在我的 C:\temp 目录中,有 3 个文件夹分别称为“aaa”、“bbb”和“ccc”。在每个文件夹中,有 3 个文件,分别称为 doc1.txt、doc2.txt 和 doc3.txt。我想将所有 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 回答