搜索> $(bla)<并替换

时间:2015-05-22 05:18:53

标签: powershell finalbuilder

我必须替换文件中的值。这适用于使用此命令的普通文本

(Get-Content $file) | Foreach-Object {$_ -replace "SEARCH", "REPLACE"} | Set-Content $file

但是现在,搜索文本是" $(SEARCH)" (没有引号)。反斜杠逃避' $'用'`$'不起作用:

(Get-Content $file) | Foreach-Object {$_ -replace "`$(SEARCH)", "BLA"} | Set-Content $file

有什么想法吗?谢谢。

3 个答案:

答案 0 :(得分:2)

-replace运算符实际上是regular expression replacement而不是简单的字符串替换,因此您必须转义正则表达式:

(Get-Content $file) | Foreach-Object {$_ -replace '\$\(SEARCH\)', "BLA"} | Set-Content $file

请注意,您可以通过在字符串文字周围使用双引号(“)的单引号(')来抑制字符串插值,我已在上面做过。

答案 1 :(得分:0)

Macintron,

您可以尝试以下内容:

(Get-Content $file) | Foreach-Object {$_.replace('$(SEARCH)', "BLA"} | Set-Content $file

答案 2 :(得分:0)

稍微(甚至更快)

sc $file ((gc $file -Raw) -replace '\$\(search\)','BLAHH')