Powershell 根据前两个目录名重命名文件
我想根据前两个目录名重命名文件。例如,下面的文件:Powershell 根据前两个目录名重命名文件,powershell,renaming,Powershell,Renaming,我想根据前两个目录名重命名文件。例如,下面的文件: C:\temp\288\Issue level 1\288 Temper inad.doc 我想把它改名 288-Issue level 1-288 Temper inad.doc 我已创建以下powershell命令: Get-ChildItem "C:\temp\288\Issue level 1" -Filter *.doc -Recurse | Rename-Item -NewName { $_.Directory.Name+'_'
C:\temp\288\Issue level 1\288 Temper inad.doc
我想把它改名
288-Issue level 1-288 Temper inad.doc
我已创建以下powershell命令:
Get-ChildItem "C:\temp\288\Issue level 1" -Filter *.doc -Recurse | Rename-Item -NewName { $_.Directory.Name+'_'+$_.Name}
但是,它仅重命名问题级别为1的文件,我希望它在开始时也包括288文件夹。只需使用
目录的父项属性
即可获得以前的目录名。我还将使用格式字符串:
您只从文件夹288\Issue level 1
中选择文件,因此您的脚本没有理由也重命名文件夹288
下的其他文件。对不起,但是如何获得父X级别?可能吗?您可以编写一个函数,根据传递的目录级别生成字符串。应该不难。嗯,我指的是有点“本土”的方法。你的意思是分析实际字符串并计算其中的\
数?
Get-ChildItem "C:\temp\288\Issue level 1" -Filter *.doc -Recurse |
Rename-Item -NewName { '{0}-{1}-{2}' -f $_.Directory.Parent.BaseName, $_.Directory.BaseName, $_.Name }