在批处理文件中,我正在调用另一个批处理文件来设置许多日期环境变量。
数据变量设置正确,我可以调用它们。
但是,在这种情况下,我需要比较其中两个环境变量,并确定它们是否相同,以便有条件地启动批处理的其余部分(或跳到结束/退出)。
但是,我似乎无法获得条件来执行两个环境变量的测试(比较)。
这些定义为%today2%(今天的日期设置为MMDDYY)和%firstmonday%,它是计算的月份的第一个星期一并设置为MMYYDD)。今天(2015年10月14日)运行时,这些返回101415和110215。
然后我尝试以下列方式测试这些:
if %today2%==%firstmonday% goto GO else END
然而,测试似乎完全被忽略了 - 测试总是进行到GO而不管。
如果我echo %today%
和%firstmonday%
他们当然不同,但不知何故测试评估为真并执行。
如果我没有清楚地解释自己,请告诉我,我会尽力做得更好。在谈到这一点时,我相当新手,但是已经用了一段时间了解它并且似乎无法弄清楚逻辑上的缺陷。
你必须
—
paradroid 2015年
..else goto END
和:END
你的:GO
标记,因为它目前只是去下一行。
if /?
它,就会在有else
子句时提供正确语法的示例:实际上它将你的例子作为一个不起作用的命令的实例,以及两个工作版本。因为else
语法不够优雅,我发现更容易反转测试,例如if not %today2%==%firstmonday% goto END
,使用以下GO
代码作为代码。