我有这行代码,我似乎无法正确反斜杠:
(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
答案 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