同ディレクトリのバッチを順に実行するバッチを書いた件について
会社でデザイナーの使うツールとして
「バッチを自動で実行するバッチ」を書いたので
ちょっと記事にします、ω、
前知識
コメントの書き方
@rem から始まる行はコメントです!
実行コマンドの非表示
デフォルトだと実行するコマンド自体も出力されてしまうので
コマンドは出力しないようにする
@echo off
バッチの呼び出し
call <path_to.bat>
自分自身の名前を取得
echo %0
条件分岐
簡単にif
@rem run01.bat @echo off if 1 == 1 ( echo "1 is 1" )
"1 is 1" |
変数
簡単にローカルな変数を
アクセスには%%でくくる
@rem run01.bat @echo off set HOGE = 256 echo %HOGE%
256 |
繰り返し
今回はforを使用する
for %%一文字の変数 in (要素) do (処理) for %%i in (1, 2, 3) do ( echo %%i )
1 | 2 | 3 |
同ディレクトリにあるbatを実行
実際のものとは違いますがだいたいこんな感じです
@echo off for %%i in (*.bat) do ( if %0 NEQ %%i ( call %%i ) )
同ディレクトリにあるbatの検索
for %%i in (*.bat) do ()
NEQ(!=)を使い自分自身を実行しないようにする
if %0 NEQ %%i ()
最後に
条件分岐とかつかってバッチを書いたのは初めてでしたが
C/C++やってれば大抵の言語は似たようなものなので
時間はかからなかったです
forの変数が%%から始まりなおかつ名前は一文字という謎制約とか
古い技術の片鱗を味わった気がするぜ。ω。