我想将变量与多个值进行比较,使用" OR"条件我批处理脚本而不是多个if逻辑。
@echo off
robocopy D:\SourceData E:\DestinationData
If %ErrorLevel% Equ 0 OR 1 OR 2 ( GoTo Success) Else ( GoTo Error)
:Success
Echo Robocopy completed successfully.
Pause
GoTo End
:Error
Echo Robo completed with some error/s.
Paude
:End
Exit
答案 0 :(得分:1)
ERRORLEVEL很少< 0,所以你可以使用:
if %errorlevel% LEQ 2 ( GoTo Success) Else ( GoTo Error)
......为了安全起见以防万一:
if %errorlevel% LEQ -1 ( GoTo Error)
如果您的值不是连续的,您可以只复制if行而不使用else(不是很好但会起作用)
如果您知道所有可能的值,那么
goto branch%ERRORLEVEL%
并定义
:branch0
:branch1
:branch2
......等等。
(这或多或少直接取自IF
在线帮助,我通过/?切换这些命令学到了很多东西)
答案 1 :(得分:1)
如果要将错误级别与特定列表进行比较:
for %%a in (1 2 3 whatever) do (
if %errorlevel% equ %%a (
goto :Success
)
)
goto :error