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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow