PowerShell 正则表达式批量替换文件名

PowerShell Regex Bulk Replace Filenames

我正在尝试替换给定文件夹中的文件名,但在 PowerShell 中使用正则表达式作为过滤器并在新文件名中。

例如文件名"CEX-13"应该重命名为"C-0013"; "CEX-14" 应更改为 "C-0014",等等

我有这个,但是我收到一个错误,提示我无法创建一个已经存在的文件。

我当前的代码是:

foreach ($file in get-childitem | where-object {$_.name -match "^CEX-(\d\d)"})
{
    rename-item $file -newname ($file.name -replace "^CEX-(\d\d)", "C-00")
}

任何帮助将不胜感激。

您需要替换中的美元来通过字符串中的 PowerShell 变量扩展,并在到达正则表达式引擎时保持美元符号。

目前 "C-00" 变为 "C-00",所有文件都将使用相同的名称。

你需要用反引号转义它

"C-00`"

或使用单引号 'C-00'