这是我的代码:
for %%a in (%TESTS%) do (
IF not "%%a" == "tests/xxxx/yyyy/zzzz/test1" (
IF not "%%a" == "tests/qqqq/ssss/bbbb/test1892" (
and so on...
)
)
)
如果我有大约一百个IF条件,我就会收到这样的错误: "命令的语法不正确" 如果我注释掉几条(任何)IF线,则错误消失。
此代码有什么问题?
问候。
答案 0 :(得分:0)
最可能的是,你超过命令行/块的8192个字符的限制 所以你可以尝试以下方法:
for %%a in (%TESTS%) do (
call :SUB "%%~a"
)
exit /B
:SUB
if "%~1"=="tests/xxxx/yyyy/zzzz/test1" exit /B
if "%~1"=="tests/qqqq/ssss/bbbb/test1892" exit /B
rem and so on...
echo do your action(s) here (done only in NONE of the listed strings match)!
exit /B
if
语句被反转,因此不需要嵌套
由于if
行被转移到子例程:SUB
,因此它们不再是过长的for
命令行/块的一部分。