我试图重命名很多文件,这些文件都位于一个文件夹中,但位于不同的子文件夹中。应重命名文件,以便其名称由文件夹名+原始文件名组成。我想知道是否可以添加条件语句,以便如果文件名已包含文件夹名,则文件名不会更改。下面的代码执行重命名文件的功能,但不包含if语句。
dir -recurse | Rename-Item -NewName {$_.Directory.Name + " - " + $_.Name}
下面的代码是一个示例,说明我如何看待代码:
dir -recurse | if($_.Name -contains $_.Directory.Name) {Rename-Item -NewName {$_.Directory.Name + " - " + $_.Name}}
应该这样做:
$rootFolder = 'D:\test'
Get-ChildItem -Path $rootFolder -File -Recurse | ForEach-Object {
$folder = $_.Directory.Name
if (!($_.Name.StartsWith($folder))) { $_ | Rename-Item -NewName ('{0} - {1}' -f $folder, $_.Name) }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句