bat 脚本100分钟后自动关机
以下是几种在Windows批处理脚本中实现100分钟后自动关机的方法:
方法1:最简单的批处理脚本
@echo off
echo 系统将在100分钟后自动关机
echo 如果要取消,请按 Ctrl+C 中断
timeout /t 6000 /nobreak >nul
shutdown /s /t 0
方法2:带倒计时显示的版本
@echo off
title 自动关机程序
set /a minutes=100
set /a seconds=minutes*60echo 系统将在 %minutes% 分钟后自动关机
echo 按 Ctrl+C 可以取消关机
echo.:countdown
set /a hours=seconds/3600
set /a mins=(seconds%%3600)/60
set /a secs=seconds%%60
echo 剩余时间: %hours%小时 %mins%分钟 %secs%秒
timeout /t 1 /nobreak >nul
set /a seconds-=1
if %seconds% gtr 0 goto countdownecho 时间到!正在关机...
shutdown /s /t 0
方法3:使用choice命令(更精确)
@echo off
setlocal enabledelayedexpansionset total_minutes=100
set total_seconds=!total_minutes!*60echo 系统将在 !total_minutes! 分钟后自动关机
echo 按任意键取消关机for /l %%i in (!total_seconds!,-1,1) do (set /a hours=%%i/3600set /a mins=(%%i%%3600)/60set /a secs=%%i%%60echo 剩余时间: !hours!小时 !mins!分钟 !secs!秒choice /c 1234567890 /n /t 1 /d 0 >nulif errorlevel 1 (echo 关机已取消pauseexit /b)
)echo 时间到!正在关机...
shutdown /s /t 0
方法4:带取消选项的版本
@echo off
:start
cls
echo ===============================
echo 自动关机程序
echo ===============================
echo.
set /p minutes="请输入关机延迟时间(分钟): "
if "%minutes%"=="" goto startset /a seconds=%minutes%*60echo.
echo 系统将在 %minutes% 分钟后自动关机
echo 1. 立即开始计时
echo 2. 取消关机计划
echo 3. 重新输入时间
echo.
choice /c 123 /m "请选择: "if errorlevel 3 goto start
if errorlevel 2 (echo 已取消关机计划shutdown /a >nul 2>&1pauseexit /b
)
if errorlevel 1 goto countdown:countdown
cls
echo 系统将在 %minutes% 分钟后自动关机
echo 按 Ctrl+C 可以取消关机
echo.set /a counter=%seconds%
:loop
set /a hours=counter/3600
set /a mins=(counter%%3600)/60
set /a secs=counter%%60echo 剩余时间: %hours%小时 %mins%分钟 %secs%秒
ping -n 2 127.0.0.1 >nul
set /a counter-=1if %counter% gtr 0 goto loopecho 时间到!正在关机...
shutdown /s /t 0
方法5:使用计划任务(推荐用于后台运行)
@echo off
echo 创建100分钟后关机的计划任务
schtasks /create /tn "AutoShutdown" /tr "shutdown /s /t 0" /sc once /st %time:~0,2%:%time:~3,2%set /a new_minute=%time:~3,2% + 100
set /a new_hour=%time:~0,2% + new_minute/60
set /a new_minute=new_minute %% 60echo 计划任务已创建,将在 %new_hour%:%new_minute% 执行关机
echo.
echo 如果要取消,请运行: schtasks /delete /tn "AutoShutdown"
pause
方法6:最小化到系统托盘运行(需要vbs辅助)
主批处理文件 (shutdown_timer.bat):
@echo off
set minutes=100
set /a seconds=minutes*60echo 关机计时器已启动,%minutes%分钟后关机
echo 图标已显示在系统托盘:: 创建VBS脚本来显示托盘图标
echo Set WshShell = WScript.CreateObject("WScript.Shell") > %temp%\tray.vbs
echo WshShell.Popup "关机计时器运行中..." ^& vbCrLf ^& "%minutes%分钟后自动关机", 5, "关机计时器", 64 >> %temp%\tray.vbs
start %temp%\tray.vbstimeout /t %seconds% /nobreak >nul
shutdown /s /t 0
取消关机的方法
如果中途想要取消关机,可以使用以下命令:
shutdown /a
使用说明
-
保存文件:将代码复制到文本文件中,保存为
.bat扩展名(如shutdown_timer.bat) -
运行方式:
- 双击运行(需要管理员权限)
- 右键选择"以管理员身份运行"
-
注意事项:
- 确保保存所有工作后再运行
- 方法2和4有倒计时显示,更直观
- 方法5使用计划任务,即使关闭命令行窗口也会执行
推荐使用方法4
它提供了完整的用户界面,包括时间设置、取消选项和倒计时显示,用户体验最好。
选择适合你需求的版本即可!
