Bri*_*ian 7 windows cmd batch-file
我试图将当前系统时间与设定时间进行比较.请看下面:
set currentTime=%TIME%
set flag=false
if %currentTime% geq 07:00 if %currentTime% leq 22:45 set flag=true
if %flag%==true (
) else (
)
Run Code Online (Sandbox Code Playgroud)
如果时间是早上7点到晚上10:45之间,则执行此操作,否则执行另一个操作.
问题是这不起作用.结果不断变化.我认为这与我的比较有关,即07:00
Dav*_*ann 10
您的脚本失败的原因是在上午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%
Run Code Online (Sandbox Code Playgroud)
成
set "currentTime=%Time: =0%"
Run Code Online (Sandbox Code Playgroud)
这将用零替换时间中的任何空格.
| 归档时间: |
|
| 查看次数: |
10048 次 |
| 最近记录: |