バッチファイルが無限ループする場合の対処方法

結論から言うと、バッチファイルのファイル名(〇〇〇.bat)の〇〇〇の部分にバッチファイルで使用可能なコマンド名を入れてしまうと、バッチファイルが無限ループしてしまうことがあります。

例えば、以下のバッチを実行した場合、私の環境ではmore.batが永遠に実行され続け、無限ループ状態に陥ります(moreコマンドは指定したファイルを表示するコマンドで、想定動作は「test.txt」の中身をウインドウに表示させることです)。

more test.txt

解決方法

率直に、バッチファイルの名前をコマンド名にすることをやめましょう。

「more.bat」や「copy.bat」など、適当に名前を付けると、このようなファイル名を付けてしまいがちですが、このようなファイル名は選ばない方が良いでしょう。

何故無限ループするか

鋭い方は既にお気づきかもしれませんが、例えばmore.batの中でmoreコマンドを実行した場合、moreコマンドが実行されず、moreという名前のバッチファイル(すなわちmore.bat)の実行が優先されます。

そのため、「more.batの中のmoreコマンドでmore.batを実行」というフローが繰り返されることになり、無限ループ状態に陥ります。

スポンサーリンク

シェアする

フォローする