批处理文件:环境变量“if”字符串测试

批处理文件:环境变量“if”字符串测试

在批处理文件中,我调用另一个批处理文件来设置一些日期环境变量。

数据变量设置正确,我可以调用它们。

但是,在这种情况下,我需要比较其中两个环境变量并确定它们是否相同,以便有条件地启动其余批处理(或跳至结束/退出)。

但是,我似乎无法获得执行两个环境变量的测试(比较)的条件。

这些定义为 %today2%(今天的日期设置为 MMDDYY)和 %firstmonday%,后者是计算出的每月第一个星期一,设置为 MMYYDD)。当今天(2015 年 10 月 14 日)运行时,这些返回 101415 和 110215。

然后我尝试按以下方式测试它们:

if %today2%==%firstmonday% goto GO else END

然而,测试似乎被完全忽略了——无论如何,测试总是继续进行。

如果我echo %today%%firstmonday%他们当然是不同的,但不知何故测试评估为真并执行。

如果我没有解释清楚,请告诉我,我会努力做得更好。在这方面我还是个新手,但已经摸索了一段时间,似乎无法找出逻辑缺陷。

答案1

我创建了两个批处理文件:b1.cmdb2.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

相关内容