プログラミング

WSL BashからPowershellやcmdを実行

WindowsのLinuxコマンドライン環境でのBash言語において、WSL BashからPowershellやcmd.exeなどのWindowsのコマンドを実行するベターな方法について少し紹介します。

今までは、powershell.exe ruby -e "puts 'OK'"みたいにやってたんですが、

まぁこれって、察せると思いますが、エラー結構でます。

ruby -e "puts 'OK'"の部分がBashのスクリプトとして機能してしまっていることが原因です。
powershell.exeの後に続くコードが長くなればなるほど、エラー率上がります。

少なくとも、このやり方だとpowershellで実行したコードと同じ出力が得られる確証はありません。
エスケープとか、忘れたらエラーになるし、最悪変なコードが実行されて大変なことになりかねません。

ということで、これからはこうすることにしました。

powershell.exe - <<'EOF'
ruby -e "puts 'OK'"
EOF

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です