#PowerShell でのWrite-HostとWrite-Outputの使い分けについて
PowerShellはお気に入りでずっと使っていますが、あまり真面目に勉強していないのでいまだに基本的なところでつまずきます。
最近つまずいたコード
最近は下記でつまずきました。
# main.ps1
$return = . .\hoge.ps1
Write-Warning $return
このコード、hoge.ps1を実行しその結果を$returnに保存したうえで、警告として表示する…という非常に単純なコードです。でも、これエラーになっちゃうこともあるダメなコードです。どこがどのようにダメか、どのような場合にエラーになってしまうかわかるでしょうか?(私は実際にエラーになるまでわかりませんでした…。)
問題のないケース
例えばhoge.ps1が下記場合はどうでしょうか?
# hoge.ps1
$fuga = "fuga"
return $fuga
この場合特に問題はありません。main.ps1の実行結果は下記になります。
PS C:\tmp\PowerShellTest> .\main.ps1
警告: fuga
期待する結果ですし、特に違和感ないですよね。
問題があるケース
でも、hoge.ps1の中身が下記の場合にはどうなるでしょうか?
ここから先は
2,032字
¥ 100
この記事が気に入ったらサポートをしてみませんか?