
SlideToShutdown##立即强制关闭计算机##
shutdown /s /f /t 0##立即强制重启计算机##
shutdown /r /f /t 0##创建计划任务(60分钟后关机)##
@echo offchcp 65001 >nul##### 创建计划任务(30分钟后关机)#####
title 60分钟倒计时自动关机
cls:: 显示菜单
echo ╔══════════════════════════════════════╗
echo ║ 自动关机程序 v1.0 ║
echo ╠══════════════════════════════════════╣
echo ║ 1. 60分钟后关机 ║
echo ║ 2. 30分钟后关机 ║
echo ║ 3. 90分钟后关机 ║
echo ║ 4. 自定义关机时间 ║
echo ║ 5. 取消关机计划 ║
echo ║ 6. 查看剩余时间 ║
echo ║ 0. 退出程序 ║
echo ╚══════════════════════════════════════╝
echo.set /p choice="请选择操作 [0-6]: "if "%%%%choice%%%%"=="1" goto :60min
if "%%%%choice%%%%"=="2" goto :30min
if "%%%%choice%%%%"=="3" goto :90min
if "%%%%choice%%%%"=="4" goto :custom
if "%%%%choice%%%%"=="5" goto :cancel
if "%%%%choice%%%%"=="6" goto :status
if "%%%%choice%%%%"=="0" exit /b 0echo 无效的选择!
pause
goto :eof:60min
set shutdown_seconds=3600
set shutdown_minutes=60
goto :confirm:30min
set shutdown_seconds=1800
set shutdown_minutes=30
goto :confirm:90min
set shutdown_seconds=5400
set shutdown_minutes=90
goto :confirm:custom
cls
echo 请输入关机时间(单位:分钟):
echo 注意:1分钟 = 60秒
echo 最大可设置10年(约5,256,000分钟)
echo.
set /p custom_minutes="分钟数: "
set /a shutdown_seconds=%%%%custom_minutes%%%% * 60
set shutdown_minutes=%%%%custom_minutes%%%%
goto :confirm:confirm
cls
echo 您选择了 %%%%shutdown_minutes%%%% 分钟后关机(%%%%shutdown_seconds%%%% 秒)
echo.
echo 警告:关机前请保存所有工作!
echo.
choice /c YN /n /m "确定要设置%%%%shutdown_minutes%%%%分钟后关机吗?(Y/N)"if %%%%errorlevel%%%% equ 2 (
echo 操作已取消。
pause
exit /b 0
)echo 正在设置关机计划...
shutdown /s /f /t %%%%shutdown_seconds%%%%if %%%%errorlevel%%%% equ 0 (
echo ✓ 关机计划设置成功!
rem 计算关机时间
call :calc_shutdown_time %%%%shutdown_minutes%%%%
echo.
echo 当前时间:%%%%time%%%%
echo 预计关机时间:%%%%shutdown_hour%%%%:%%%%shutdown_minute%%%%
echo.
echo 正在启动倒计时显示...
timeout /t 2 /nobreak >nul
rem 显示倒计时界面
call :countdown_display %%%%shutdown_seconds%%%%
) else (
echo ✗ 设置失败!请以管理员身份运行。
pause
)exit /b 0:calc_shutdown_time
set /a add_minutes=%%%%1
for /f "tokens=1-2 delims=:" %%%%%%%%a in ("%%%%time%%%%") do (
set /a hour=%%%%%%%%a
set /a minute=%%%%%%%%b
)rem 处理空格
set "hour=%%%%hour: =%%%%"set /a minute=minute+add_minutes
if !minute! geq 60 (
set /a hour=hour+minute/60
set /a minute=minute%%%%%%%%60
)
if !hour! geq 24 set /a hour=hour-24if !hour! lss 10 set hour=0!hour!
if !minute! lss 10 set minute=0!minute!
set shutdown_hour=!hour!
set shutdown_minute=!minute!
goto :eof:countdown_display
set total_seconds=%%%%1
:loop
cls
set /a hours=total_seconds/3600
set /a minutes=(total_seconds%%%%%%%%3600)/60
set /a seconds=total_seconds%%%%%%%%60
echo ╔══════════════════════════════════════╗
echo ║ 关机倒计时显示 ║
echo ╠══════════════════════════════════════╣
echo ║ 剩余时间: ║
echo ║ ║
echo ║ %%%%hours%%%%小时%%%%minutes%%%%分钟%%%%seconds%%%%秒 ║
echo ║ ║
echo ║ 预计关机时间: ║
echo ║ %%%%shutdown_hour%%%%:%%%%shutdown_minute%%%% ║
echo ╚══════════════════════════════════════╝
echo.
echo 按 Ctrl+C 取消关机并退出程序if %%%%total_seconds%%%% leq 0 (
echo 正在关机...
exit /b 0
)set /a total_seconds=total_seconds-1
timeout /t 1 /nobreak >nul 2>&1
goto :loop:cancel
shutdown /a >nul 2>&1
if %%%%errorlevel%%%% equ 0 (
echo ✓ 关机计划已取消!
) else (
echo 没有找到活动的关机计划。
)
pause
exit /b 0:status
shutdown /l
echo.
echo 按任意键返回主菜单...
pause >nul
goto :eof
@echo off
choice /c YN /m "将在30分钟后关机,是否继续?[Y/N]"
if errorlevel 2 goto :cancel
if errorlevel 1 goto :shutdown:shutdown
echo 正在设置30分钟后关机...
shutdown /s /f /t 1800
echo 关机计划已设置!
echo 如需取消,请按任意键运行取消命令...
pause >nul
shutdown /a
echo 关机计划已取消!
pause
exit:cancel
echo 操作已取消。
pause
本文最后更新时间 2025-12-16
文章链接地址:https://xzlo.blog/index.php/archives/93/
本站文章除注明[转载|引用|原文]出处外,均为本站原生内容,转载前请注明出处