通过替换字符和覆盖来重命名文件

时间:2014-01-17 19:19:15

标签: powershell

在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中完成,但这是我到目前为止最接近的。

2 个答案:

答案 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" }