根据前 2 个目录名称重命名文件

Rename files based on the previous 2 directory names

我想根据前两个目录名重命名文件。例如,下面的文件:

C:\temp8\Issue level 18 Temper inad.doc

我要重命名

288-Issue level 1-288 Temper inad.doc

我创建了以下 powershell 命令:

Get-ChildItem "C:\temp8\Issue level 1" -Filter *.doc -Recurse | Rename-Item -NewName { $_.Directory.Name+'_'+$_.Name}

但是它只重命名问题级别为 1 的文件,我希望它也包含开头的 288 文件夹。

只需使用DirectoryParent属性即可得到之前的目录名。另外我会使用 格式字符串 :

Get-ChildItem "C:\temp8\Issue level 1" -Filter *.doc -Recurse | 
    Rename-Item -NewName { '{0}-{1}-{2}' -f  $_.Directory.Parent.BaseName, $_.Directory.BaseName, $_.Name }