Windows批处理文件时间比较

时间:2013-01-11 16:48:38

标签: 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

1 个答案:

答案 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%"

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