批量代码,以获取今天的日期并比较字符串

时间:2015-09-08 18:36:33

标签: batch-file

我有这个代码来获取今天的日期...但是当我尝试比较字符串时它失败了并且没有给我正确的结果。

setlocal EnableDelayedExpansion


    @For /F "tokens=1,2,3,4 delims=. " %%A in ('Date /t') do @( 
        Set Day=%%A
        Set Month=%%B
        Set Year=%%C
    )

    @echo DAY = %Day%

    %SystemRoot%\System32\timeout.exe 5

    IF "%Day%" == "tue"( @echo "YES"  %SystemRoot%\System32\timeout.exe 5 )



%SystemRoot%\System32\timeout.exe 5

如何将其与今天的日期进行比较,如果匹配则获得ECHO?

1 个答案:

答案 0 :(得分:1)

这里发生了一些事情。首先,您需要"tue"(之间的空格,以便批处理正确解释if语句。

其次,date /t以一个首字母大写字母返回星期几,在这种情况下,它将返回字符串Tue。但是,默认情况下if语句区分大小写,并且您检查的值为tue等于Tue。幸运的是,if有一个/I选项,告诉if进行不区分大小写的比较。

最后,您需要@echo yestimeout命令之间的换行符,否则超时将被回显而不是执行。

整个支票看起来像这样:

IF /i "%Day%" == "tue" (
    @echo "YES"
    %SystemRoot%\System32\timeout.exe 5
)