Script batch - Istruzioni If annidate

A volte, è necessario disporre di più istruzioni "if" incorporate l'una nell'altra. Di seguito è la forma generale di questa dichiarazione.

if(condition1) if (condition2) do_something

Quindi solo se le condizioni 1 e 2 sono soddisfatte, il codice nel blocco do_something verrà eseguito.

Di seguito è riportato un esempio di come è possibile utilizzare le istruzioni if ​​annidate.

Esempio

@echo off
SET /A a = 5
SET /A b = 10
if %a%==5 if %b%==10 echo "The value of the variables are correct"

Produzione

Il comando precedente produce il seguente output.

"The value of the variables are correct"

Se errorlevel

Ancora un altro caso speciale è "if errorlevel", che viene utilizzato per testare i codici di uscita dell'ultimo comando eseguito. Vari comandi emettono codici di uscita interi per indicare lo stato del comando. In genere, i comandi passano 0 se il comando è stato completato correttamente e 1 se il comando non è riuscito.

Di seguito è riportata la sintassi generale di questa affermazione.

if errorlevel n somecommand

dove "n" è uno dei codici di uscita interi.

Istruzione Goto

In genere, l'esecuzione di un file batch procede riga per riga con i comandi eseguiti su ciascuna riga a turno. Tuttavia, è spesso desiderabile eseguire una particolare sezione di un file batch saltando altre parti. La capacità di saltare a una particolare sezione è fornita dal comando "goto" appropriatamente chiamato (scritto come una parola). La sezione di destinazione è etichettata con una riga all'inizio che ha un nome con i due punti iniziali. Quindi lo script sembra:

... 
goto :label 
...some commands 
:label 
...some other commands

L'esecuzione salterà "alcuni comandi" e inizierà con "alcuni altri comandi". L'etichetta può essere una riga in qualsiasi punto dello script, anche prima del comando "goto". I comandi "Goto" si trovano spesso nelle istruzioni "if". Ad esempio, potresti avere un comando del tipo -

if (condition) goto :label

Di seguito è riportato un esempio di come può essere utilizzata l'istruzione goto.

Esempio

@echo off 
SET /A a = 5 

if %a%==5 goto :labela 
if %a%==10 goto :labelb

:labela 
echo "The value of a is 5" 

exit /b 0

:labelb 
echo "The value of a is 10"

La cosa fondamentale da notare sul programma di cui sopra è:

  • Le istruzioni del codice per l'etichetta dovrebbero essere nella riga successiva dopo la dichiarazione dell'etichetta.

  • È possibile definire più istruzioni goto e le etichette corrispondenti in un file batch.

  • Le dichiarazioni dell'etichetta possono essere ovunque nel file.

Produzione

Il comando precedente produce il seguente output.

"The value of a is 5"