IF
Esegue un'elaborazione condizionale in programmi batch.
IF [NOT] {ERRORLEVEL numero | CMDEXTVERSION numero | [/I] stringa1 op stringa2 | EXIST nomefile | DEFINED variabile} (comando1) [ELSE comando2]
Dove:
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.CMDEXTVERSION numero- Condizione vera se la versione delle estensioni dei comandi è uguale o superiore anumero. In generale,numeroè1se le estensioni dei comandi sono disabilitate e2se invece sono abilitate (valore di default)./I- Specifica che nel confrontare le stringhe non distingue fra maiuscole e minuscole.stringa1 op stringa2- Condizione vera se il confronto è rispettato.opè l'operatore di confronto:==- è uguale a.EQU- è uguale a.NEQ- non è uguale a.LSS- è minore di.LEQ- è minore o uguale a.GTR- è maggiore di.GEQ- è maggiore o uguale a.
EXIST nomefile- Condizione vera se ilnomefilespecificato 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 | CMDEXTVERSION numero | [/I] stringa1 op 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 le lettere maiuscole e minuscole sono distinte.
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 var equivale a %var%. se la variabile var è definita, altrimenti ECHO La variabile d'ambiente var non e' definita.:
if defined var (
echo La variabile d'ambiente var equivale a %var%.
) else (
echo La variabile d'ambiente var non e' definita.
)
Approfondimento:
Per espandere il valore di una variabile d'ambiente, racchiudere il nome della variabile tra simboli di percentuale %, come nell'esempio (vedi ECHOECHO):
echo %path%
Visualizza il valore della variabile d'ambiente PATH (vedi PATHPATH). 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 (vedi DATEDATE).%TIME%- Ora attuale (vedi TIMETIME).%CD%- Cartella corrente (vedi CD o CHDIRCD o CHDIR).%RANDOM%- Numero casuale tra 0 e 32767.
Commenti