我正在尝试比较当前系统时间和设定时间。 请看下面:
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"
。
请注意,在缺少10
之前的时间开始时缺少0
。 这会导致比较问题,因为批处理正在进行字符串比较而不是数字比较。
由于6
的ASCII值大于0
的ASCII值,因此07:00
小于6:00
。
解决方案要求如果在上午10点之前,则在时间的开始附加零。
只是改变
set currentTime=%TIME%
成
set "currentTime=%Time: =0%"
这将用零替换任何空格。