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

时间:2017-12-01 14:58:47

标签: powershell powershell-v3.0

我正在尝试通过文件夹中的几个文档运行PowerShell脚本,并替换任何可能包含一些特殊字符的文档,主要是$,#。但我想一次做两件事。

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

目前我收到错误

  

重命名 - 项目:找不到驱动器。一个名为' @ {FullName = F'不存在。行:2字符:3 +重命名项目$ _($ _。FullName -replace"#","")

files1变量的输出是这个

FullName       : F:\baggy\17_10_27 may waiver - dondeal - EPT 2337 jonney - CLOSE OUT #025-17.msg
ParentFolder   : F:\baggy\
FullPathLength : 108
Extension      : msg
Name           : 17_10_27 may waiver - dondeal - EPT 2337 jonney - CLOSE OUT #025-17.msg
Length         : 121344
LastWriteTime  : 10/27/2017 1:43:02 PM

FullName       : F:\baggy\17_10_27 crickey waivers for drum skyline un-cement - #068-17 rewax RX - resent to OOE.msg
ParentFolder   : F:\baggy\
FullPathLength : 106
Extension      : msg
Name           : 17_10_27 crickey waivers for drum skyline un-cement - #068-17 rewax RX - resent to OOE.msg
Length         : 386560
LastWriteTime  : 10/27/2017 4:16:23 PM

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

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

答案 1 :(得分:0)

试试这个:

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

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

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