如何在Powershell中替换文字字符串?

时间:2014-06-18 13:57:27

标签: powershell

我有这行代码,我似乎无法正确反斜杠:

(Get-Content prefs.js) | %{$_ -replace "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36"} | Set-Content prefs.js

1 个答案:

答案 0 :(得分:10)

看起来你处理文字字符串。不要使用-replace运算符 它处理正则表达式。使用Replace方法:

... | %{$_.Replace("string to replace", "replacement")} | ...

或者,如果您仍想使用-replace,请同时使用[regex]::Escape(<string>)。它会为你逃跑。

示例:使用“$ _”

逐字替换文字

比较以下结果,显示在正则表达式替换中使用自动变量时会发生什么:

[PS]> "Hello" -replace 'll','$_'                  # Doesn't work!
HeHelloo

[PS]> "Hello".Replace('ll','$_')                  # WORKS!
He$_o