IF
Esegue un elaborazione condizionante 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 dovrebbe eseguire il comando
solo se la condizione è falsa.
ERRORLEVEL numero Specifica una condizione vera se l'ultimo programma
eseguito ha restituito un codice di uscita uguale o
maggiore del numero specificato.
stringa1==stringa2 Specifica una condizione vera se le stringhe di testo
specificate corrispondono. Gli uguali == vanno bene,
ma possono essere sostituiti da altri parametri:
EQU è uguale a (come ==).
NEQ è non uguale a.
LSS è meno di.
LSQ è meno o uguale a.
GTR è maggiore di.
GEQ è maggiore o uguale a.
EXIST nomefile Specifica una condizione vera se il nomefile specificato
esiste.
DEFINED variabile Specifica una condizione vera se la variabile
d'ambiente specificata è definita.
comando1 Specifica il comando da eseguire se la condizione è
soddisfatta.
ELSE comando2 Specifica il 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:
Esegue il comando ECHO Ciao! se la stringa everest è uguale alla stringa EVEREST:
if everest==EVEREST (echo Ciao!)
oppure:
if everest==EVEREST (
echo Ciao!
)
In questo caso non verrà eseguito il comando poichè senza l'opzione /I i caratteri vengono distinti fra maiuscoli e minuscoli.
Esegue il comando "C:\Ciccio.txt" ed il comando ECHO Apertura di C:\Ciccio.txt completata. se il file C:\Ciccio.txt esiste, altrimenti esegue il comando ECHO C:\Ciccio.txt non e' stato trovato. non distinguendo fra maiuscole e minuscole:
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.
)
Esegue il comando ECHO La variabile d'ambiente var equivale a %var%. se la variabile d'ambiente var è definita, altrimenti esegue il comando 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.
(non andare a capo dopo a) oppure:
if defined var (
echo La variabile d'ambiente var equivale a %var%.
) else (
echo La variabile d'ambiente var non e' definita.
)
Approfondimento:
Per visualizzare il valore di una variabile d'ambiente bisogna scrivere la variabile d'ambiente tra simboli di percentuali % %, come nell'esempio:
echo %path%
In cui viene visualizzato il valore della variabile d'ambiente PATH. Questo si può fare con tutte le variabili definite, comprese quelle che lo sono dall'apertura della finestra MS-DOS, come %ERRORLEVEL%, che espande il codice d'uscita dell'ultima istruzione. Un'altra è
%CMDCMDLINE%, che espande il percorso del prompt dei comandi. %DATE% l'abbiamo già visto prima, e %TIME% espande l'ora. Altre sono %CD% che espande la cartella corrente e
%RANDOM% che espande un numero qualsiasi tra 0 e 32767.