[PowerShell] 文字列の自動展開

PowerShell の文字列の扱いについて、ちょっと Ruby に似ている面白い挙動がある。
$hoge = "john"
Write-Host "私の名前は $hoge です。"
# 出力
# 私の名前は john です。

Write-Host '私の名前は $hoge です。'
# 出力
# 私の名前は $hoge です。
「 " 」 (ダブルクォーテーション) の場合は、変数名を引用符の中に含めてあっても自動的に展開してくれる。しかし、「 ' 」 (シングルクォーテーション) の場合は、そのまま文字列として出力される。Ruby と違って式 ( #{ } ) で囲む必要はない。
エスケープシーケンスでも、同様の展開が行われる。
$hoge = "john"
Write-Output "私の名前は`n$hoge です。"
# 出力
# 私の名前は
# john です。
覚えておくといいかもしれない。

このブログの人気の投稿

Excel で入力した文字に勝手に取り消し線が入る

コピーした行の挿入が表示されない時はフィルタされていないかチェック