IF

Esegue un'elaborazione condizionale in programmi batch.

 

IF [/I] [NOT] {ERRORLEVEL numero | stringa1==stringa2 | EXIST nomefile | DEFINED variabile} (comando1) [ELSE comando2]

 

Dove:

  • /I - Specifica che non distingue fra maiuscole e minuscole.
  • NOT - Specifica che Windows esegue il comando solo se la condizione è falsa.
  • ERRORLEVEL numero - Condizione vera se l'ultimo programma eseguito ha restituito un codice di uscita uguale o maggiore del numero specificato.
  • stringa1==stringa2 - Condizione vera se le stringhe corrispondono. Altri operatori:
    • EQU - è uguale a (come ==).
    • NEQ - non è uguale a.
    • LSS - è minore di.
    • LSQ - è minore o uguale a.
    • GTR - è maggiore di.
    • GEQ - è maggiore o uguale a.
  • EXIST nomefile - Condizione vera se il nomefile specificato esiste.
  • DEFINED variabile - Condizione vera se la variabile d'ambiente specificata è definita.
  • comando1 - Comando da eseguire se la condizione è soddisfatta.
  • ELSE comando2 - Comando da eseguire se la condizione non è soddisfatta.

La sintassi può essere anche:

 

IF [NOT] {ERRORLEVEL numero | stringa1==stringa2 | EXIST nomefile | DEFINED variabile} (
comandi1
) [ELSE (
comandi2
)]

 

Dove si possono mettere più comandi condizionali.

 

Esempi:

 

1. Esegue il comando ECHO Ciao! se la stringa everest è uguale a EVEREST:

if everest==EVEREST (echo Ciao!)

oppure:

if everest==EVEREST (
    echo Ciao!
)

In questo caso, il comando non verrà eseguito poiché senza l'opzione /I la distinzione fra maiuscole e minuscole è considerata.

 

2. Esegue il comando "C:\Ciccio.txt" e il comando ECHO Apertura di C:\Ciccio.txt completata. se il file C:\Ciccio.txt esiste, altrimenti esegue ECHO C:\Ciccio.txt non e' stato trovato:

if /i exist "C:\Ciccio.txt" (
    "C:\Ciccio.txt"
    echo Apertura di C:\Ciccio.txt completata.
) else (
    echo C:\Ciccio.txt non e' stato trovato.
)

3. Esegue ECHO La variabile d'ambiente variab equivale a %variab% se la variabile variab è definita, altrimenti ECHO La variabile d'ambiente variab non e' definita:

if defined variab (
    echo La variabile d'ambiente variab equivale a %variab%.
) else (
    echo La variabile d'ambiente variab non e' definita.
)

Approfondimento:

Per visualizzare il valore di una variabile d'ambiente, racchiudere il nome della variabile tra simboli di percentuale %, come nell'esempio:

echo %path%

Visualizza il valore della variabile d'ambiente PATH. Questo si applica a tutte le variabili definite, comprese quelle predefinite in MS-DOS, come:

  • %ERRORLEVEL% - Espande il codice d'uscita dell'ultima istruzione.
  • %CMDCMDLINE% - Espande il percorso del prompt dei comandi.
  • %DATE% - Data attuale.
  • %TIME% - Ora attuale.
  • %CD% - Cartella corrente.
  • %RANDOM% - Numero casuale tra 0 e 32767.