MPのご利用は計画的に

だいたい自分用のメモ

batファイルをMakefileのようにサブルーチン指定で実行する

概要

自分の開発環境はMacなのでmakeが初期状態から実行できるのですが、 チーム開発を行うときにWindowsな人がいることもありますよね。

MacでもWindowsでも環境構築をワンライナーで終わらせたいと思ったときに、 Makefileと同じような書き方をしつつ、コマンドプロンプトでどうにかできないのか調べたメモです。

環境

TL;DR

  • batファイルにはサブルーチンという関数に近い機能がある
  • サブルーチンは:ラベル名で作る
  • ファイルの先頭でサブルーチンを呼ぶためにgotoを置く
  • call makefile.bat <label-name>

どうすればいいか

batファイルの作成

まずは普通のbatファイルを作ります。 その時、先頭にgotoを置きます。

@echo off
goto %1

サブルーチンの設定

コマンドプロンプトから実行したい内容をサブルーチンにします。 サブルーチンの最後はexit /bで呼び出し元に戻ります。

@echo off
goto %1

:sub
echo "これはサブルーチン"
exit /b

:not-called
echo "これは呼ばれない"
exit /b

コマンドプロンプトからの呼び出し

コマンドプロンプトからラベルを指定して実行します。

call makefile.bat sub
"これはサブルーチン"

気をつけること

ここで作ったbatファイルはそのままでは実行できなくなります。

参考