BAT关机倒计时延迟

时间:2014-01-13 20:39:36

标签: batch-file countdown shutdown

Windows 7 CMD.exe样式批处理

我不确定这会完美无缺。我觉得有时候TIMEOUT会结束并且bat会自己执行SHUTDOWN -ABORT。我希望用户只需按一个键即可停止关机倒计时(理想情况下只需注释“OK”按钮即可),否则可以完美地关闭计算机。

if exist "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" ("C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 vlc://quit) else goto end
shutdown -s -t 120 -c "Press any key in the Command Prompt to cancel the shutdown."
timeout -t 120
shutdown -a

我考虑添加一个PING 999.999.999.999 -n 1 -w 1000来强制进行短暂等待,但是如果用户按下一个键,那么它会在中止关闭之前等待,这也可能导致问题。

2 个答案:

答案 0 :(得分:0)

这使用Choice来提供延迟和错误级别来检查,以便在按下C时它将中止。它还提供了立即关闭的额外选项。

超时不会在中止时提供错误级别,因此按任意键以中止似乎不是一种选择。

@echo off
if exist "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" ("C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 vlc://quit) else (goto :EOF)
choice /c CS /D S /T 120 /M "Waiting for 120 seconds: Press C to cancel shutdown, or S to shutdown now"
if errorlevel 2 shutdown -s

答案 1 :(得分:0)

使用choice command。您可能需要下载它,具体取决于您的操作系统。

如果未按下q,这将在关闭前等待300秒。

choice /c aq /n /d a /t 300 /m "Computer shutting down in 300 seconds [q to cancel]"
if %errorLevel%==1 shutdown -a