Windows批处理文件时间比较
我试图将当前系统时间与设定时间进行比较。请参阅下文:Windows批处理文件时间比较,windows,batch-file,cmd,Windows,Batch File,Cmd,我试图将当前系统时间与设定时间进行比较。请参阅下文: set currentTime=%TIME% set flag=false if %currentTime% geq 07:00 if %currentTime% leq 22:45 set flag=true if %flag%==true ( ) else ( ) 如果时间在上午7点到晚上10:45之间,则执行此操作,否则执行其他操作 问题是这不起作用。结果不断变化。我想这与我的比较有关,比如07:00,你的脚本失
set currentTime=%TIME%
set flag=false
if %currentTime% geq 07:00 if %currentTime% leq 22:45 set flag=true
if %flag%==true (
) else (
)
如果时间在上午7点到晚上10:45之间,则执行此操作,否则执行其他操作
问题是这不起作用。结果不断变化。我想这与我的比较有关,比如07:00,你的脚本失败的原因是在上午10点之前。当时间小于10时,%time%变量返回以下格式:
“H:MM:SS:SS”
。但是,当10或更高版本时,%Time%
变量返回以下格式:“HH:MM:SS:SS”
注意0
在10
缺失之前的时间点缺失。这会导致比较问题,因为batch正在进行字符串比较,而不是数字比较
07:00
小于6:00
,因为6
的ASCII值大于0
的ASCII值
如果时间在上午10点之前,解决方案要求在时间的开始处加一个零
只要改变就行了
set currentTime=%TIME%
进入
set "currentTime=%Time: =0%"
这将用零替换时间中的任何空格。太好了!这是有道理的。谢谢你的帮助