バッチファイルで goto や exit ができない時はたぶん for 文が原因

for 文の中から goto や exit を呼び出しても、コマンドプロンプトの仕様なのか上手く動作しない。動作させられないこともないが、かなりトリッキーになる。

結論

for 文は使わないこと。代わりに ラベルと goto 文で頑張る

ちなみに while 文なんてものも存在しないので、やはり ラベルと goto 文で頑張る

参考