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

Joh*_*sTK 3 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

Rom*_*min 13

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

... | %{$_.Replace("string to replace", "replacement")} | ...
Run Code Online (Sandbox Code Playgroud)

或者,如果您仍然想使用,-replace那么也使用[regex]::Escape(<string>).它会为你逃脱.

示例:使用"$ _"逐字替换文本

比较以下结果,显示在正则表达式替换中使用自动变量时可能发生的情况:

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

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