我正在尝试将当前系统时间与设定时间进行比较。请参阅以下内容:
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
答案 0 :(得分:10)
您的脚本失败的原因是在上午10点之前的时间。当时间小于10时,%Time%变量将返回以下格式:" H:MM:SS:ss"
。但是,当%Time%
变量返回10或更高版本时,"HH:MM:SS:ss"
。
请注意,在0
缺失之前的时间开始时缺少10
。这会导致比较问题,因为批处理正在进行字符串比较而不是数字比较。
07:00
的ASCII值大于6:00
的ASCII值, 6
小于0
。
如果解决方案在上午10点之前,解决方案要求您在时间开头附加零。
只需更改
set currentTime=%TIME%
<强>向强>
set "currentTime=%Time: =0%"
这将用零替换当时的任何空格。