システムの自動化を行う際によく使われるのがBashスクリプトになるでしょう。また、WindowsであればBatchファイルが使われます。macOSとLinuxは同じBashスクリプトでも良さそうですが、Windows向けに別な言語で作るのは面倒です。 そこで使ってみたいのがBatshです。共通のスクリプトでBashスクリプトとBatchファイルを生成します。

Batshの使い方

デモ。文字列の定義や簡単な計算処理。右側に生成されているのはBashスクリプトです。

同じコードからBatchを生成します。

コマンドの実行。Bashスクリプト。

こちらはBatch。

ループ処理。

Batch。構文がかなり違います。

ファイルの一覧を操作する場合。

Batchだと全く異なる構文で出ているのが分かります。

BatshとBashは近い構文で出ていますが、Batchは全く違う場合もあるのが分かります。標準の環境で特別なソフトウェアを用意せずとも動くようにできるのが便利です。特にWindows向けにBatchの構文を覚えずとも書けるようになるのが良さそうです。

BatshはOCaml製のオープンソース・ソフトウェア(MIT License)です。

Batsh - A language that compiles to Bash and Windows Batch BYVoid/Batsh: A language that compiles to Bash and Windows Batch