バッチファイルで goto や exit ができない時はたぶん for 文が原因
for 文の中から goto や exit を呼び出しても、コマンドプロンプトの仕様なのか上手く動作しない。動作させられないこともないが、かなりトリッキーになる。
結論
for 文は使わないこと。代わりに ラベルと goto 文で頑張る。
ちなみに while 文なんてものも存在しないので、やはり ラベルと goto 文で頑張る。
参考
- BATのfor文におけるGOTO文のトラップ
- 低機能、は完全に同意
- Exiting out of a FOR loop in a batch file? - Stack Overflow
echo on
とgoto :eof
を使えば実現できるらしい。汎用性乏しすぎる
- Is it possible to break loop? - DosTips.com
- こんなにコメント欄が白熱していること自体がそもそもおかしい
- label function という call 文でラベルを呼んでいるトリッキーなやり方も紹介されている...