tags:

views:

48

answers:

1

I am trying to use PowerShell do a simple find and replace. I use template text files and use $in front of values that need to be changed.

Example (Get-Content "D:\test") | Foreach-Object {$_ -replace "`$TBQUAL", "DBO"} | Set-Content "D:\test"

it should find the following line OWNER=$TBQUAL and make it look like this OWNER=DBO

I am using the escape ` in front of $TBQUAL with no luck. To test that it is working if I removed the $ from the front, it will replace TBQUAL and make it look like this OWNER=$DBO

+2  A: 

Two things to get this to work:

  1. Use single quote for your strings so that the $ is not interpreted as the start of a variable to be expanded.
  2. Escape the $ using a back slash "\" so the regular expression parser takes it literally.

For eg:

PS C:\> 'Has a $sign in it' -replace 'a \$sign', 'no dollar sign'
Has no dollar sign in it
zdan
worked like a charm, thank you.
Chadit