PowerShell で echo (Write-Output) が改行する
PowerShell で 標準出力したいときは echo (Write-Output) を使いますが、このecho、最後に勝手に改行をつけるという余計なことをしてくれます。
例えば以下のようにすると、
$str1 = "hoge"
$str2 = "fuga"
echo $str1 $str2
期待しているのは
hoge fuga
なのですが、実際には、
hoge
fuga
となってしまいます。
なので、例えばログっぽく時間と変数を出したい場合、
$date = $((Get-Date).toString('yyyy-MM-dd HH:mm:ss.fff'))
$str = "hoge"
echo $date $str
以下のようになって
2022-12-27 13:41:49.215
hoge
困ってしまいました。
ですが対処は簡単で、echo に続く文字列をダブルクオーテーションで囲えばいいだけ。
$date = $((Get-Date).toString('yyyy-MM-dd HH:mm:ss.fff'))
$str = "hoge"
echo "$date $str"
のようにすると、
2022-12-27 13:41:59.531 hoge
と期待した通りになりました。
以上!