在批处理文件中,我调用另一个批处理文件来设置一些日期环境变量。
数据变量设置正确,我可以调用它们。
但是,在这种情况下,我需要比较其中两个环境变量并确定它们是否相同,以便有条件地启动其余批处理(或跳至结束/退出)。
但是,我似乎无法获得执行两个环境变量的测试(比较)的条件。
这些定义为 %today2%(今天的日期设置为 MMDDYY)和 %firstmonday%,后者是计算出的每月第一个星期一,设置为 MMYYDD)。当今天(2015 年 10 月 14 日)运行时,这些返回 101415 和 110215。
然后我尝试按以下方式测试它们:
if %today2%==%firstmonday% goto GO else END
然而,测试似乎被完全忽略了——无论如何,测试总是继续进行。
如果我echo %today%
和%firstmonday%
他们当然是不同的,但不知何故测试评估为真并执行。
如果我没有解释清楚,请告诉我,我会努力做得更好。在这方面我还是个新手,但已经摸索了一段时间,似乎无法找出逻辑缺陷。
答案1
我创建了两个批处理文件:b1.cmd
和b2.cmd
如下所示。第一个文件b2.cmd
按如下所述设置变量:
set today2=101415
set firstmonday=110215
然后b1.cmd
按预期执行:
@echo off
call b2.cmd
echo today=%today2%
echo firstmonday=%firstmonday%
if "%today2%"=="%firstmonday%" (
goto go
) else (
goto end
)
:go
echo at go
goto :EOF
:end
echo at end