【发布时间】:2022-01-31 14:25:43
【问题描述】:
在以下 PowerShell 代码中:
dir "D:\Test\New folder" | Rename-Item -NewName {$_.Name -replace 'PP&C Test (Bank), Ltd.','PP&C Test (Bank) Ltd.'}
我要做的是将 D:\Test\New 文件夹中所有文件名中包含 PP&C Test (Bank), Ltd. 的文件替换为 PP&C Test (Bank) Ltd. 所以基本上只是删除之前的逗号有限公司
在 PowerShell 中执行脚本时,不会重命名任何内容。知道为什么吗?我相信这与 & 和 Brackets () 有关,因为当我对没有这些字符的文件名执行相同操作时,它可以正常工作。
谢谢!
【问题讨论】:
-
-replace [regex]::Escape ('PP&C Test (Bank), Ltd.'), 'PP&C Test (Bank) Ltd.'还将开关-File附加到您的 Get-ChildItem (dir) cmdlet,否则您也会尝试重命名子文件夹 -
或者只是
-NewName {$_.Name.Replace('PP&C Test (Bank), Ltd.','PP&C Test (Bank) Ltd.')},这里不需要正则表达式 -
您好,谢谢您的回复,不幸的是,这不起作用。文件仍未重命名。
-
在某些情况下,没有扩展名的文件末尾没有句点?
-
大家好,抱歉,因为我使用的是机密数据,我拼错了我需要在我的脚本中替换的内容,所以你的两个建议现在都有效,现在我再次尝试了:@Theo
dir "D:\Test\New folder" | Rename-Item -NewName {$_.Name -replace [regex]::Escape('PP&C Test (Bank), Ltd.'),'PP&C Test (Bank) Ltd.''}@ MathiasR.Jessendir "D:\Test\New folder" | Rename-Item -NewName {$_.Name.Replace('PP&C Test (Bank), Ltd.','PP&C Test (Bank) Ltd.')}谢谢大家的快速回复!
标签: powershell replace