2014年5月2日金曜日

powershellで$を含む文字列を置換する



たとえば
hello,${name}
という文字列の${name}の部分を"world"に変えたいとき

'hello,${name}' -replace '${name}',"world"

ではダメで、

'hello,${name}' -replace "\`$\{name}","world"

これでOK。

からくりとしては
1、$がpowershellで変数を表す特殊文字なので、`でエスケープする必要がある
2、さらに、$は正規表現で行末を表す特殊文字でもあるので、さらに\でエスケープする必要がある

ということのようです。
なお中括弧{}も正規表現では意味があるので\でエスケープしています。


参考
http://goldyrain.blogspot.jp/2011/12/powershell.html

0 件のコメント:

コメントを投稿