我有这个代码来获取今天的日期...但是当我尝试比较字符串时它失败了并且没有给我正确的结果。
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?
答案 0 :(得分:1)
这里发生了一些事情。首先,您需要"tue"
和(
之间的空格,以便批处理正确解释if
语句。
其次,date /t
以一个首字母大写字母返回星期几,在这种情况下,它将返回字符串Tue
。但是,默认情况下if
语句区分大小写,并且您检查的值为tue
,不等于Tue
。幸运的是,if
有一个/I
选项,告诉if
进行不区分大小写的比较。
最后,您需要@echo yes
和timeout
命令之间的换行符,否则超时将被回显而不是执行。
整个支票看起来像这样:
IF /i "%Day%" == "tue" (
@echo "YES"
%SystemRoot%\System32\timeout.exe 5
)