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.