我有超过1000多个文件需要重命名。
第一个设置文件夹和/或文件按位置分组,因此每个文件的前四个字符相同;有四五个不同的位置。我需要删除文件夹名称的前几个字符。
示例:
旧文件:ABC_Doe,Jane
新文件:Doe,Jane
有关最快捷方式的建议吗?
我尝试了以下所有方法:
1st Attempt
$a = Get-ChildItem C:\example
$b = Where-Object {$_.name -like “*ABC_*”}
$cmdlet_name = “Rename-Item”
$d = (cmdlet_name $a $b)
invoke-expression $d
2nd Attempt
$e = Get-ChildItem C:\example
$f = $e.TrimStart (“ABC_”)
第三次尝试
Rename-Item -{$_.name -like “*ASD*”, “”}
答案 0 :(得分:6)
尝试此操作,获取所有子项(仅限文件),通过替换它们(没有任何内容)删除abc_并重命名每个文件。要重命名子目录中的文件,请将-Recurse开关添加到Get-ChildItem命令:
Get-ChildItem c:\example -Filter ABC_* | Where-Object {!$_.PSIsContainer} | Rename-Item -NewName { ($_.BaseName -replace '^ABC_') + $_.Extension }
<强>更新强>
实际上,这应该也可以,并且更短(不需要附加文件扩展名,因为重命名是对文件名执行的。)
Get-ChildItem c:\example -Filter ABC_* | Where-Object {!$_.PSIsContainer} | Rename-Item -NewName { $_.Name -replace '^ABC_' }
答案 1 :(得分:0)
get-childItem ABC_* | rename-item -newname { $_.name -replace 'ABC_','' }