Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

ヒアドキュメントのSplitをするときの改行文字は"`r`n"でなく"`n"

@'
abcde
fghij
'@.Split("`r`n") | Set-Variable hoge

みたいにヒアドキュメント的なことをするとき、Splitの引数に"`r`n"を指定している記事が時々ある。
これは、Windowsのコンソールで上記の内容を直接タイプしているときは問題ない。
しかし、上記の内容をファイルに格納してドットソース形式で実行したり、Windows以外の環境で実行したりする場合にはうまく行かない(文字列が区切られずにそのままSet-Variableされてしまう)。

問題の原因はSplitの引数に"`r`n"を指定しているため(コマンドプロンプトだけ内部的な文字コードが異なる?)。
ここを"`n"にすれば、ファイルに格納していても、Linuxのターミナル上でも、問題なく動く。