Windowsをバッチからシャットダウンしようとすると無限ループする
現象
下図のようにシャットダウンコマンドが無限ループします。
以下の手順で再現することができます。
- メモ帳を開く
shutdown /s /t 0と書いて保存shutdown.batという名前で保存- そのファイルをダブルクリックする
解決方法
以下の解決方法のどちらかでOKです。
ファイル名を変える
shutdown.batというファイル名を例えば終了.batとすればよいです。
コマンドを変える
どうしても名前を変えたくない場合は、終了コマンドをshutdown /s /t 0をshutdown.exe /s /t 0とすればよいです。
何が起こっていたのか
shutdownコマンドとshutdown.batというファイル名が競合していることが原因でした。
コマンドの優先順位は、(実際にはほかにもルールはあると思いますが)同一フォルダのバッチを探す→システムのコマンドを探すとなっています。shutdownコマンドが呼ばれたとき、Windowsを終了するコマンドを探索する前に、同ディレクトリにあるshutdown.batが呼ばれて無限ループしていることが原因でした。
This post is licensed under CC BY 4.0 by the author.
