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
è1
se le estensioni dei comandi sono disabilitate e2
se 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.LSQ
- è minore o uguale a.GTR
- è maggiore di.GEQ
- è maggiore o uguale a.
EXIST nomefile
- Condizione vera se ilnomefile
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 | 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 ECHO):
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 (vedi DATE).%TIME%
- Ora attuale (vedi TIME).%CD%
- Cartella corrente (vedi CD o CHDIR).%RANDOM%
- Numero casuale tra 0 e 32767.
Commenti