如何从PowerShell中的文档中的文件名中替换特殊字符



我试图通过文件夹中的几个文档运行PowerShell脚本,并替换所有可能包含某些特殊字符的文档,主要是$,#。但是我想一次做。

$files1 | ForEach-Object {Rename-Item $_ ($_.FullName -replace "#", "")}

目前我在下面遇到错误

重命名:无法找到驱动器。名称为'@{fullname = f'的驱动器不存在。>

Files1变量的输出是此

fullname:f: baggy  17_10_27 5月豁免-Dondeal -EPT 2337 Jonney-关闭#025-17.MSG父母:f: aggy 全路:108扩展:味精姓名:17_10_27 5月豁免-Dondeal -EPT 2337 Jonney-关闭#025-17.MSG长度:121344持久时间:10/27/2017 1:43:02 pm fullname:f: abagy  17_10_27 crickey豁免鼓天际线 - #068-17 rewax rx-对ooe.msg的不满父母:f: aggy 全路:106扩展:味精姓名:17_10_27 Crickey豁免鼓天际线 - #068-17 REWAX RX-对OOE.MSG的不满长度:386560持久时间:10/27/2017 4:16:23 PM

尝试以下:

$files1 | ForEach-Object {Rename-Item $_.FullName ($_.FullName -replace "#", "")}

如果您不移动文件,我建议:

$files1 | ForEach-Object {Rename-Item $_.FullName ($_.Name -replace "#", "")}

这应该做技巧:

Get-ChildItem -Path X:path-you-want | Rename-Item {$_.FullName -replace '#' -replace '$'}

最新更新