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ファイルはそのままでは実行できなくなります。