[PowerShell] 文字列出力とコマンドモード・式モードの解釈
PowerShell で文字列を出力する際には、
PowerShell のクセを把握しておく必要がある。
改行の有無というよりも、コマンドモードとして解釈されていることを理解しなければならないらしい。しかし、以下の書き方では式モードとして解釈される。
Write-Host "ho" + "ge" # 出力結果 # ho + ge Write-Host "ho" + "ge" -foregroundcolor red # 出力結果 # ho + ge (文字色が変更される)Write-Host は、改行が入らない。
Write-Output "ho" + "ge" # 出力結果 # ho # + # ge
echo "ho" + "ge" # 出力結果 # ho # + # geWrite-Output と echo は改行が入る。
改行の有無というよりも、コマンドモードとして解釈されていることを理解しなければならないらしい。しかし、以下の書き方では式モードとして解釈される。
Write-Host ("ho" + "ge") # 出力結果 # hoge
$hoge = "ho" + "ge" Write-Host $hoge Write-Output $hoge echo $hoge # 出力結果 # hogeこのような書き方だと式モードとして解釈され、すべて同じ出力となる。
コマンドモード (command mode) と式モード (expression mode)
コマンドモードと式モードというのは、ちょっと複雑だ……。- コマンドモード
文字、「&」 (アンパサンド) 、「 . 」 (ピリオド) で開始。その後に空白、文字が続く場合。 - 式モード
数値、変数、引用符で囲まれた文字列の場合。