相変わらずメインのマシンはWindowsなのですが、batファイルのもろもろがいつまでも覚えられず、bashスクリプトで書きたいなあ、ということでbatファイルにbashスクリプトを埋め込むことにしました。 Cでつくった自作用ツールがあるため、Windowsにはかならずmsys2をいれているのでbashは絶対あるんですよね。
その他の言語を埋め込む方法は
が詳しいです。
シェルスクリプトをバッチファイルに埋め込む
以下のようにすると、バッチファイルにシェルスクリプト(bashスクリプト)を埋め込むことにできます。拡張子 .bat
で保存すると cmd.exe
からもmsys2の bash.exe
からも起動できます。
1:rem () { <<'#__CO__'
2@bash "%~f0" %* & exit /b
3#__CO__
4}
5
6echo 以下普通にシェルスクリプト
仕組みはバッチファイルのコメントやら、bashのヒアドキュメントやら、:
コマンドやらをうまく利用して埋め込んでいます。