Windows批处理文件时间比较

8

我正在尝试将当前系统时间与设定时间进行比较。请参见以下内容:

 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。
1个回答

12
你的脚本失败的原因是在早上10点之前。当时间小于10时,%Time%变量返回如下格式:" H:MM:SS:ss"。但当时间为10点或更晚时,%Time%变量返回如下格式:"HH:MM:SS:ss"
注意,在10之前的时间中缺少0。这会导致比较问题,因为批处理执行的是字符串比较而不是数字比较。
如果时间在上午10点之前,则需要在时间开头添加一个零。 请直接更改
set currentTime=%TIME%

进入

set "currentTime=%Time: =0%"

这将用零替换时间中的任何空格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接