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 的比较有关

4

1 回答 1

12

您的脚本失败的原因是上午 10 点之前的时间。当时间小于 10 时,%Time% 变量返回此格式:" H:MM:SS:ss". 但是,当 10 或更高版本时,%Time%变量返回此格式:"HH:MM:SS:ss".

请注意0之前的时代开始时的10失踪失踪。这会导致比较问题,因为批处理正在进行字符串比较而不是数字比较。

07:00小于,6:00因为 的 ASCII 值6大于 的 ASCII 值0

如果时间在上午 10 点之前,该解决方案要求您在时间的开头附加一个零。

只是改变

set currentTime=%TIME%

进入

set "currentTime=%Time: =0%"

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

于 2013-01-11T18:34:26.087 回答