PowerShell重命名多个文件,文件名的特定部分

我正在尝试重命名文件名以相同方式结尾的多个文件。这些文件当前为:“ Foo Bar(U)(V7.9)(USA).txt”“ Few Ber Doo Ber(U)(V7.9)(USA).txt” ect

我正在尝试删除名称的“(U)(V7.9)(USA)”部分,并用(USA)替换此部分。这些文件将被命名为:“ Foo Bar(USA).txt”“ Few Ber Doo Ber(USA).txt”

我无法完全正常工作,但以下是我一直尝试无济于事的方法:

get-childItem '* (U) (V7.9) (USA).txt' | rename-item -newname { $_.name -replace '(U) (V7.9) (USA)','(USA)' }
安东尼·内斯(Anthony Neace)

您要替换的几个字符是正则表达式中的特殊字符。它们具有特殊的保留含义,可让您在不“转义”时创建复杂的表达式。为了逃避它们,您只需要在特殊字符前面加上反斜杠即可。例子:

PS C:\> $string = "(U) (V7.9) (USA)"

#Failure
PS C:\> $string -replace "(U) (V7.9) (USA)", "(USA)"
(U) (V7.9) (USA)

#Success
PS C:\> $string -replace "\(U\) \(V7\.9\) \(USA\)", "(USA)"
(USA)

如果您遇到类似的问题,这是《Powershell正则表达式参考》您可能会注意到,使用了反引号`字符而不是反斜杠-反引号是powershell中的转义字符,但是对于.NET(基于Powershell的构建)中的所有正则表达式处理而言,情况并非如此。因此,您可能会在Internet上的正则表达式示例中看到两者都用于powershell。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章