Powershell更改文件夹中一个子文件夹中的部分文件名(按文件夹名)
我想批量重命名按文件夹名称筛选的文件 我使用了以下代码Powershell更改文件夹中一个子文件夹中的部分文件名(按文件夹名),powershell,Powershell,我想批量重命名按文件夹名称筛选的文件 我使用了以下代码 dir .\* -include "*Plantegninger*"-recurse| Rename-Item -NewName {$_.name -replace "-00K-","-00U-"} 在上面的代码中,我要替换的文件(名称的一部分)位于名为“Plantegninger”的子文件夹中 我想把-00K-换成-00U- 我在主文件夹的子文件夹中有许多同名子文件夹。因此,我
dir .\* -include "*Plantegninger*"-recurse| Rename-Item -NewName {$_.name -replace "-00K-","-00U-"}
在上面的代码中,我要替换的文件(名称的一部分)位于名为“Plantegninger”的子文件夹中
我想把-00K-换成-00U-
我在主文件夹的子文件夹中有许多同名子文件夹。因此,我尝试递归地做这件事。
但我相信这是按文件名过滤,而不是按子文件夹名过滤。
如何按子文件夹名称进行筛选,然后仅在该特定名称的子文件夹中更改文件名?
我还可以按子文件夹名称过滤,然后再按该子文件夹中的文件名过滤吗?如果将操作分为两个不同的步骤,则更容易推断:
#枚举相关子文件夹
$subfolders=Get ChildItem-Filter'*Plantegninger*'-Directory-Recurse
#重命名子文件夹中的文件
$subfolders | Get ChildItem-File | Rename Item-NewName{$\ uu.Name-replace“-00K-”,“-00U-”}
一旦它按预期工作,您就可以再次将语句组合到单个管道中(如果需要,我个人认为使用单独的语句更容易阅读):
Get-ChildItem-Filter'*Plantegninger*'-目录-Recurse | Get-ChildItem-File |重命名Item-NewName{$\u.Name-replace“-00K-”,“-00U-”}
是否仅重命名命名子文件夹下的文件,还是要递归到每个命名子文件夹的底部?