在Windows XP上,在文件夹中,我需要重命名一些文件,将文件名中的一个字符替换为另一个字符,并覆盖已有该名称的任何文件。
例如,该文件夹包含以下两个文件:
fileA.xml
fileb.xml
我需要将fileA.xml
重命名为fileb.xml
,覆盖原始fileb.xml
使用PowerShell,我有这个命令:
Get-ChildItem *.* -include *.xml | Rename-Item -NewName { $_.name.Replace("A","b")}
重命名不起作用,因为该文件已存在。
不必在PowerShell中完成,但这是我到目前为止最接近的。
答案 0 :(得分:6)
您可以使用Move-Item
参数尝试-Force
命令。
Get-ChildItem . -include *.xml | Move-Item -Destination { $_.name.Replace("A","b")} -Force
答案 1 :(得分:4)
首先,您需要进行过滤以获取您实际想要重命名的文件。
Get-ChildItem . -include *.xml | Where-Object { $_.name -match "A$" }
并将其提供给Move-Item
以重命名:
Get-ChildItem . -include *.xml | Where-Object { $_.name -match "A$" } | Move-Item -destination { $_.name -replace "A$", "b" }