我正在寻找一段批量文件代码,该代码会在一段时间后关闭计算机。我得到了明显的答案,即:
shutdown -s -f -t 120
但是说我想在两分钟之后关闭,而不是五分钟或十分钟?
有没有办法制作一个.bat文件,在查询用户(通过弹出窗口或其他方式)查看多少 分钟 之后关闭计算机关机。
现在,我自己并不是很狡猾,但这就是我的想法:用户运行.bat文件,并出现一个弹出窗口,询问关机需要多长时间。用户输入' 5',然后按'输入'。批处理文件然后强制关闭所有打开的程序,并在300秒(5分钟)后关闭。
此外,批处理文件是否可以内置某种形式的计时器?
我已经看到它完成了,但是cmd
窗口庞大而笨重
(可选:以某种方式将中止关闭功能合并到同一个批处理文件中。)
[我知道我可以在单独的批处理文件中使用shutdown -a
,但这并不好玩。]
编辑:与以下代码类似,只是在计时器启动后关闭计算机。另外,如果可能的话,使用更小的cmd
框?
@ECHO off
cls
color 0B
:taskkill
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Program To Shutdown
echo.
set /p taskkill=
if "%taskkill%" == "%taskkill%" goto taskkillconfirm
exit
:taskkillconfirm
color 0B
:image
set image=/im
if "%image%" == "%image%" goto imageconfirm
exit
:imageconfirm
color 0B
:forced
set forced=/f
if "%forced%" == "%forced%" goto forcedconfirm
exit
:forcedconfirm
:hour
color 0B
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo. Hours?:
echo.
set /p hour=
:min
color 0B
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Minutes?:
echo.
set /p min=
:sec
color 0B
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Seconds?:
echo.
set /p sec=
:continue
color 0B
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo %taskkill% Shutdown in
echo.
echo %hour% Hours %min% Minutes %sec% Seconds
set /a sec="%sec%-1"
if %sec%==-1 set /a min="%min%-1"
if %sec%==-1 set /a sec="59"
if %min%==-1 set /a hour="%hour%-1"
if %min%==-1 set /a min="59"
if %hour%==-1 goto done
ping -n 2 127.0.0.1 >NUL
goto continue
:done
color 0B
cls
taskkill %image% %taskkill% %forced%
exit
此外,上述代码到底是做什么的呢?
答案 0 :(得分:0)
set /p ans=How Many Minutes to shutdown:
set /a to=ans * 60
shutdown /s /t %to%
cls
choice /c y /m "Press Y to abort shutdown"
shutdown -a
请输入帮助
set /?
choice /?
shutdown /?
cls /?
如果您想循环播放,可以使用if
,goto
和choice /t
来实现计时器。
if /?
goto /?
choice /?
以及可用的命令(大多数不是全部)
help
答案 1 :(得分:0)
这是我放在一起的快速批量文章。它会在几分钟内要求用户输入,并将输入转换为秒以开始关闭。如果按下任何键,它将停止关机。
custom_shutdown.bat
@echo off
title Custom Shutdown
REM Ask the user for input and convert minutes to seconds
set /P minutes="Enter shutdown delay in minutes: "
set /A seconds="%minutes%*60"
REM Start windows' shutdown command
echo Starting shutdown...
shutdown -s -f -t %seconds%
REM Cancel shutdown on keypress
echo.
echo Press any key to cancel the shutdown
pause>nul
shutdown -a
echo Shutdown canceled!
pause
exit
无法使用弹出窗口要求用户输入标准批处理命令。使用其他应用程序或VBScripts,您可以显示弹出窗口。有关弹出消息和输入的更多信息,请查看this page。
要更改控制台窗口的大小,您可以使用mode
- 命令:
mode con cols=60 lines=10
没有专用命令等待几秒钟,但您可以使用ping
- 命令,因为一次ping总是需要一秒钟。因为我们不需要命令的输出,所以我们使用>nul
将其丢弃。等待5秒的示例代码:
ping -n 5 localhost>nul
如果你不知道google对大多数批处理问题有什么帮助。另外,从较小的程序开始,不要尝试在第一个程序中使用每个功能(输入,数学,选择等)。