我正在尝试使用PowerShell做一个简单的查找和替换。我使用模板文本文件,并在需要更改的值前面使用$
。
示例:
(Get-Content "D:\test") | Foreach-Object {$_ -replace "`$TBQUAL", "DBO"} | Set-Content "D:\test"
它应该找到行OWNER=$TBQUAL
并使其看起来像OWNER=DBO
。
我在$TBQUAL
面前使用逃生而没有运气。要测试它是否正常,如果我从前面删除$
,它将替换TBQUAL
并使其看起来像OWNER=$DBO
。
答案 0 :(得分:5)
要使其发挥作用的两件事:
$
不会被解释为要展开的变量的开头。$
,以便正则表达式解析器从字面上理解它。例如,
PS C:\> 'Has a $sign in it' -replace 'a \$sign', 'no dollar sign'
Has no dollar sign in it
答案 1 :(得分:1)
如果你没有在替换中使用regular expressions,你可以像这样做一个简单(快速)的替换:
Foreach-Object {$_.Replace('$TBQUAL', 'DBO')}