You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理中如何对比用户输入时间变量与time命令返回结果

批处理定时关机脚本修正方案

原代码问题梳理

  • 变量拼写错误:自定义的关机时间变量是shutdownTime,判断逻辑里误写为shutdowmTime
  • 命令输出赋值错误:set time=time /t只会把time /t这个字符串存到变量里,不会实际执行命令获取时间
  • 占用系统变量名:time是系统内置环境变量,直接覆盖会导致其他时间相关逻辑异常
  • 无循环延时:死循环无间隔执行会占用大量CPU资源
  • 无输入格式提示:没有提前告知用户12小时制的输入规范,容易出现格式不匹配的情况

修正后的可运行代码

@echo off
:: 先提示用户查看本地12小时制时间格式
echo 请先确认你的系统12小时制时间格式,当前系统格式示例:
time /t
echo 请按照上方格式输入关机时间(例如 10:30 PM 或 10:30 下午,根据你系统显示的格式填写)
set /p shutdownTime=请输入关机时间:

:checkTime
:: 捕获time /t的输出赋值给当前时间变量
for /f "delims=" %%a in ('time /t') do set currentTime=%%a
if "%currentTime%" EQU "%shutdownTime%" (
    echo 到达设定时间,即将执行关机
    :: 测试阶段可以注释下方关机命令,测试完成后取消注释即可
    :: shutdown /s /f /t 0
    pause
    exit
)
:: 每次检查间隔30秒,可根据需求调整间隔时间
timeout /t 30 /nobreak >nul
goto checkTime

使用说明

  • 测试时先保留关机命令的注释,输入和time /t输出格式一致的时间测试匹配逻辑,确认正常后再取消关机命令的注释
  • 脚本运行后最小化窗口即可后台运行,不会干扰正常操作
  • 如果需要取消关机,直接关闭脚本窗口即可,如果已经触发关机可以运行shutdown /a取消关机操作

内容的提问来源于stack exchange,提问作者Blut_Regnet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:36:04