Ricerca…


Sintassi

  • if [/ i] StringToCompare1 == StringToCompare2 (commandA) else (commandB)

  • if errorlevel 1 (commandA) else (commandB)

  • if% errorlevel% == 1 (commandA) else (commandB)

  • se esiste Nome file (comandoA) altro (comandoB)

  • se definito VariableName (commandA) else (commandB)

Osservazioni

Ci sono alcune sintassi tra cui scegliere in un'istruzione if . Useremo if string1==string2 come esempio.

Sintassi a 1 linea

  • 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

Sintassi multilinea

if string1==string2 (
    commandA
)

O

if string1==string2 (
    commandA
) else (
    commandB
)

Sono ancora disponibili alcune sintassi aggiuntive.

Confronto dei numeri con la dichiarazione IF

SET TEST=0

IF %TEST% == 0 (
    echo TEST FAILED
) ELSE IF %TEST% == 1 (
    echo TEST PASSED
) ELSE (
    echo TEST INVALID
)

Confronto tra stringhe

IF "%~1" == "-help" (
    ECHO "Hello"
)

dove %1 riferisce al primo argomento della riga di comando e ~ rimuove tutte le virgolette che sono state incluse quando è stato chiamato lo script.

Confronto di 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
)

Lo script sopra controllerebbe la variabile Errorlevel (built-in). L'operatore not può essere usato.

Set "Test=%Errorlevel%"

If "%Test%" == "1" (
    Echo Errorlevel is 1
)

Anche questo funziona.

Si noti che alcuni comandi non influiscono sul livello di errore :

  • Rompere
  • Eco
  • endlocal
  • Per
  • Se
  • Pausa
  • Rem
  • Rd / Rmdir
  • Impostato
  • Titolo

I seguenti comandi impostano ma non cancellano errorlevel :

  • Cls
  • Vai a
  • chiavi
  • popd
  • Cambio

I seguenti comandi impostano i codici di uscita ma non il livello di errore :

  • Rd / Rmdir

I seguenti comandi impostano errorlevel ma non i codici di uscita :

  • MD / Mkdir

Controlla se il file esiste

If exist "C:\Foo\Bar.baz" (
    Echo File exist
)

Questo controlla se l'esistenza del file C: \ Foo \ Bar.baz. Se questo esiste, echos File esiste Anche l'operatore Not può essere aggiunto.

Se la variabile esiste / imposta

If Defined Foo (
    Echo Foo is defined
)

Questo controllerebbe se una variabile è definita o meno. Di nuovo, può essere usato l'operatore Not .



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow