Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如果当前日期不在特定日期之间,则中止操作的批处理文件_Date_Batch File - Fatal编程技术网

Date 如果当前日期不在特定日期之间,则中止操作的批处理文件

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程序员来说是一

我需要一个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命令直接解析该日期

比如说,你可以

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!
  )
)