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 a numero. In generale, numero è 1 se le estensioni dei comandi sono disabilitate e 2 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 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 | 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

Supportando i contenuti che secondo te sono rilevanti, anche solo lasciando un commento, contribuirai a dare a questi contenuti maggiore visibilità e a rendere internet un posto più gradevole, affinché le stesse informazioni che hai trovato utili possano essere accessibili anche ad altre persone. Grazie per l'attenzione.