我有一个批处理脚本,在其中我使用多个if exist语句,问题是除了一个语句之外,所有语句都在工作。
设置了以下变量
SETLOCAL ENABLEDELAYEDEXPANSION
SET basedrive=E:
SET tfworkspace=!basedrive!\TFS
SET envdefault=%1
SET projenv=!envdefault!
echo subapp=!subapp! subappservice=!subappservice!
SET tfworkspacepath=!tfworkspace!\!releasebranch!\!app!\!subapp!
这句话很管用,
if exist "!tfworkspacepath!" (robocopy "!tfworkspacepath!"\sourcecode\messagebroker\ /E /NFL /NJS /NDL /ETA "!basedir!\!messagebroker!" ) else SET /a foldererror=1
SET tfworkspacepathservice=!tfworkspace!\!releasebranch!\!app!\!subapp!\sourcecode\build\!projenv!
这句话行不通,我的意思是,即使你的道路不存在,它仍然试图复制机器人。
if exist !tfworkspacepathservice! (
robocopy !tfworkspacepathservice! /E /NFL /NJS /NDL /ETA "!basedir!\!scripts!") else SET /a foldererror =!foldererror!+1
我是批次写作新手,请指导我。
发布于 2014-06-12 02:54:05
首先,我要向所有前来帮忙的人道歉。
出什么事了?
我有一个if语句,它验证子subappservice变量是否为空,从语法上讲,它是imperfect.see,下面是糟糕的语法。
if NOT !subappservice!=="" (SET scripts=!scripts!\!subapp!) else SET projenv=!projenv!\!subappservice!& SET scripts=!scripts!\!subapp!\!subappservice!
我把它更正到下面来解决这个问题。
if [!subappservice!]== [] (SET scripts=!scripts!\!subapp!) else SET projenv=!projenv!\!subappservice!& SET scripts=!scripts!\!subapp!\!subappservice!
即使你的语法不好或不完美,CMD.exe也不会发出任何警告,我一直在验证我的脚本,直到偶然发现为止。我把它放在这里是为了让别人从我的错误中受益:)
https://serverfault.com/questions/604239
复制相似问题