使用文件夹名称重命名powershell中的文件

时间:2012-08-05 11:57:52

标签: powershell file-io

使用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

请有人能指出我如何处理这个问题的正确方向吗?

3 个答案:

答案 0 :(得分:9)

这将重命名文件并在文件夹名称和文件名之间加上下划线('_'):

Get-ChildItem C:\temp -Filter *.txt -Recurse | Rename-Item -NewName { $_.Directory.Name+'_'+$_.Name}

答案 1 :(得分:1)

[IO.Directory]::GetCurrentDirectory().split('\\')[-1]会为您提供您所在的目录。

答案 2 :(得分:1)

试试这个

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

小心不要销毁/删除任何文件。不保证。