我正在编程程序的启动器,我想自我更新(但是当我放入wget.exe时,它并不存在)。所以我改为比较日期"更新",但它不起作用:
set UpdateDate=11/11/2015
if %date% GEQ %UpdateDate% goto NOTUPDATED
if %date% LSS %UpdateDate% goto UPDATED
然后,我测试了一切顺利。但我也想尝试 NOTUPDATED 。我将UpdateDate更改为11/02/2015(我在2015年4月11日写作)&它去了UPDATED ...我也尝试了其他日期,如02/03/2015,它也进入了UPDATED。
更重要的是,我已经推出了无法解决的解决方案......
谢谢!
答案 0 :(得分:0)
通常,GEQ
中的LSS
,IF
等比较运算符会比较数字或字符串。自己比较下一个日期字符串:
10/04/2016 // the least string although the biggest date
11/04/2015
12/04/2014 // the biggest string although the least date
因此,您应以可比较的格式表达日期,例如ISO 8601日期YYYY-MM-DD
(年 - 月 - 日)或类似YYYYMMDD
。假设(在您的语言环境中)11/04/2015
日期字符串表示 2015年4月11日:
set "thisDate=11/04/2015"
rem "thisDate=%DATE%"
set "AnsiDate=%thisDate:~6,4%-%thisDate:~3,2%-%thisDate:~0,2%"
echo thisDate=%thisDate% AnsiDate=%AnsiDate%
应显示thisDate=11/04/2015 AnsiDate=2015-04-11
资源(必读):