来自吾爱破解论坛大神手搓的一个定时关机小工具,大小仅1KB,既方便又简单实用。(作者:亻の丶三口,论坛UID:1225105)

参考资料:https://www.52pojie.cn/thread-2028766-1-1.html

大小仅1KB的Windows定时关机小工具 第1张

看到这个界面你们肯定想到了什么。没错!这是一个批处理文件(.bat),它是由一系列DOS命令或Windows命令行指令组成,通过双击或命令行执行,可自动完成重复性任务(如文件操作、系统配置、自动化部署等)。

工具下载

蓝奏云盘:https://52lc.lanzoue.com/ilagP2v8tade

使用方法

s表示秒,m表示分钟,h表示小时。双击定时关机.bat,在打开的命令行中输入s100然后回车确认就表示100秒后自动关机,如输入m2回车后即表示2分钟后自动关机,若输入h1回车后则表示1小时后自动关机,直接输入0回车就会取消之前计划的关机指令

代码

@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion

:input
set /p "time=请输入时间(示例:s1/m2/h3 或 0取消): "
set "time=%time: =%"

if "%time%"=="0" (
    shutdown -a
    echo 已取消关机计划
    goto :end
)

set "unit="
set "value=0"

REM 检查输入是否包含 s/m/h 并提取数值和单位
for /l %%i in (1,1,3) do (
    if /i "!time:~0,1!"=="s" (
        set "unit=S"
        set "value=!time:~1!"
        goto :parse_value
    )
    if /i "!time:~0,1!"=="m" (
        set "unit=M"
        set "value=!time:~1!"
        goto :parse_value
    )
    if /i "!time:~0,1!"=="h" (
        set "unit=H"
        set "value=!time:~1!"
        goto :parse_value
    )
)

echo 错误:无效的时间格式,请使用 s/m/h(不区分大小写)
goto :input

:parse_value
set /a "test_value=value*1" >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误:请输入有效的数字
    goto :input
)

if /i "%unit%"=="H" (
    set /a seconds=value*3600
) else if /i "%unit%"=="M" (
    set /a seconds=value*60
) else if /i "%unit%"=="S" (
    set /a seconds=value
) else (
    echo 错误:无效的时间单位,请使用 s/m/h(不区分大小写)
    goto :input
)

if %seconds% geq 0 (
    shutdown -s -t %seconds%
    echo 已设置%value%%unit%后关机(%seconds%秒)
) else (
    echo 错误:请输入有效的非负整数
)

:end
pause