Date 如果当前日期不在特定日期之间,则中止操作的批处理文件
我需要一个if-else语句来中止或继续批处理脚本 如果当前日期介于指定的两个日期之间,则它将继续工作 否则,批处理文件将中止 例如,我将日期设置为2019年1月1日至2019年3月1日,如果日期为2019年2月15日,批处理文件将工作,如果2019年4月1日,批处理文件将中止 最接近的答案来自这里 %DATE%的问题在于,它使用短日期格式返回当前日期,该格式完全可以无限定制。一个用户可能会将其系统配置为返回Fri053119,另一个用户可能会选择2019年5月31日,这对于BAT程序员来说是一场噩梦 一种可能的解决方案是使用WMIC,WMI的命令行接口。参见维基百科的 wmic OS Get localdatetime以方便的格式返回日期,以便使用FOR命令直接解析该日期 比如说,你可以Date 如果当前日期不在特定日期之间,则中止操作的批处理文件,date,batch-file,Date,Batch File,我需要一个if-else语句来中止或继续批处理脚本 如果当前日期介于指定的两个日期之间,则它将继续工作 否则,批处理文件将中止 例如,我将日期设置为2019年1月1日至2019年3月1日,如果日期为2019年2月15日,批处理文件将工作,如果2019年4月1日,批处理文件将中止 最接近的答案来自这里 %DATE%的问题在于,它使用短日期格式返回当前日期,该格式完全可以无限定制。一个用户可能会将其系统配置为返回Fri053119,另一个用户可能会选择2019年5月31日,这对于BAT程序员来说是一
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set wldt=%%a
set today=%wldt:~0,8%
以方便的格式获取当前日期,并将其用于日期比较
所以你以后可以
if %today% gtr 20190101 (
if %today% lss 20190630 (
echo Yes!
)
)
即使没有自己的代码,问题也太广泛了。提示:当将顺序颠倒为yyyy.mm.dd时,一个简单的字符串与一个进行比较就足够了。您不应该支持带有双重答案的双重帖子。好吧,您回答了这两个问题,并在版主删除另一个答案之前临时获得了代表,评论如下:请不要添加。回答最好的一个,并将其余的标记为重复项。如果不是重复的,则根据问题定制帖子并标记取消删除。保留的问题不会删除答案,因此没有理由发布其他答案,引用其他答案的评论是更好的方式。OP注意到了。
if %today% gtr 20190101 (
if %today% lss 20190630 (
echo Yes!
)
)