batch-file
Si declaraciones
Buscar..
Sintaxis
if [/ i] StringToCompare1 == StringToCompare2 (commandA) else (commandB)
si errorlevel 1 (commandA) else (commandB)
si% errorlevel% == 1 (commandA) else (commandB)
si existe Nombre de archivo (commandA) else (commandB)
si se define VariableName (commandA) else (commandB)
Observaciones
Hay algunas sintaxis para elegir en una sentencia if
. Usaremos if string1==string2
como ejemplo.
Sintaxis de 1 línea
-
if string1==string2 commandA
-
if string1==string2 (commandA)
-
if string1==string2 (commandA) else (commandB)
-
if string1==string2 (commandA) else commandB
-
if string1==string2 (commandA)else (commandB)
-
if string1==string2 (commandA)else commandB
Sintaxis multilínea
if string1==string2 (
commandA
)
O
if string1==string2 (
commandA
) else (
commandB
)
Todavía hay algunas sintaxis adicionales disponibles.
Comparando números con la declaración IF
SET TEST=0
IF %TEST% == 0 (
echo TEST FAILED
) ELSE IF %TEST% == 1 (
echo TEST PASSED
) ELSE (
echo TEST INVALID
)
Comparando cuerdas
IF "%~1" == "-help" (
ECHO "Hello"
)
donde %1
refiere al primer argumento de la línea de comando y ~
elimina todas las comillas que se incluyeron cuando se llamó al script.
Comparando Errorlevel
If Errorlevel 1 (
Echo Errorlevel is 1 or higher
REM The phrase "1 or higher" is used because If Errorlevel 1 statement means:
REM If %Errorlevel% GEQ 1
REM Not If %Errorlevel% EQU 1
)
o
If "%Errorlevel%"=="1" (
Echo Errorlevel is 1
)
El script anterior verificará la variable Errorlevel (incorporada). El operador not
puede ser utilizado.
Set "Test=%Errorlevel%"
If "%Test%" == "1" (
Echo Errorlevel is 1
)
Este también funciona.
Tenga en cuenta que algunos comandos no afectan el nivel de error :
- Descanso
- Eco
- Endlocal
- por
- Si
- Pausa
- Movimiento rápido del ojo
- Rd / Rmdir
- Conjunto
- Título
Los siguientes comandos configuran pero no borran errorlevel :
- Cls
- Ir
- Llaves
- Popd
- Cambio
Los siguientes comandos establecen códigos de salida pero no el nivel de error :
- Rd / Rmdir
Los siguientes comandos establecen errorlevel pero no los códigos de salida :
- Md / Mkdir
Compruebe si el archivo existe
If exist "C:\Foo\Bar.baz" (
Echo File exist
)
Esto comprueba si el archivo C: \ Foo \ Bar.baz existe. Si esto existe, se hace eco de archivos existe el Not
operador también se puede añadir.
Si existe variable / conjunto
If Defined Foo (
Echo Foo is defined
)
Esto comprobaría si una variable está definida o no. Una vez más, el Not
puede utilizarse el operador.