使用PowerShell替换字符串中包含$的字符串

Cha*_*dit 4 powershell

我正在尝试使用PowerShell做一个简单的查找和替换.我使用模板文本文件并$在需要更改的值前面使用.

例:

(Get-Content "D:\test") | Foreach-Object {$_ -replace "`$TBQUAL", "DBO"} | Set-Content "D:\test"
Run Code Online (Sandbox Code Playgroud)

它应该找到该行OWNER=$TBQUAL并使其看起来像OWNER=DBO.

我正在使用前面的逃生$TBQUAL没有运气.为了测试它是否正常工作,如果我$从前面移除它,它将替换TBQUAL并使它看起来像OWNER=$DBO.

zda*_*dan 5

要做到这一点,有两件事要做:

  1. 对字符串使用单引号,以便$不将其解释为要展开的变量的开头.
  2. 转义$使用反斜杠"\",以便正则表达式解析器从字面上理解它.

例如,

PS C:\> 'Has a $sign in it' -replace 'a \$sign', 'no dollar sign'
Has no dollar sign in it
Run Code Online (Sandbox Code Playgroud)