使用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
请有人能指出我如何处理这个问题的正确方向吗?
答案 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 + $_ ) }
小心不要销毁/删除任何文件。不保证。