Riga di comando MS-DOS e Windows se comando

Sommario:

Riga di comando MS-DOS e Windows se comando
Riga di comando MS-DOS e Windows se comando

Video: Qualche semplice comando per il DOS/Prompt dei Comandi 2024, Potrebbe

Video: Qualche semplice comando per il DOS/Prompt dei Comandi 2024, Potrebbe
Anonim

Il comando if esegue l'elaborazione condizionale nei programmi batch.

Disponibilità

Il comando if è un comando interno accessibile e utilizzato nei file batch.

  • Windows 95
  • Windows 98
  • Windows NT
  • Windows XP
  • Windows 2000
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10

Sintassi

  • Windows Vista e sintassi successiva.
  • Windows XP e sintassi precedente.

Windows Vista e sintassi successiva

IF [NOT] ERRORLEVEL comando numerico IF [NOT] string1 == string2 comando IF [NOT] EXIST comando nome file

NON Specifica che Windows 2000 o XP devono eseguire il comando solo se la condizione è falsa.
Numero ERRORLEVEL 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.
Nome file EXIST Specifica una condizione vera se esiste il nome file specificato.
comando Specifica il comando da eseguire se la condizione è soddisfatta. Il comando può essere seguito dal comando ELSE che eseguirà il comando dopo la parola chiave ELSE se la condizione specificata è FALSE.

La clausola ELSE deve essere presente sulla stessa riga del comando dopo IF. Per esempio:

Nome file IF EXIST. (del nome file.) ELSE (nome file eco. mancante).

L'esempio seguente NON funzionerebbe perché il comando del deve essere terminato da una nuova riga:

Nome file IF EXIST. del nomefile. ELSE nomefile echo. mancante

Né l'esempio sotto funzionerebbe, perché il comando ELSE deve trovarsi sulla stessa riga della fine del comando IF:

Nome file IF EXIST. del nomefile. ELSE nomefile echo. mancante

L'esempio che segue funzionerebbe se si desidera tutto su una riga:

Nome file IF EXIST. (del nome file.) ELSE nome file echo. mancante

Se le estensioni di comando sono abilitate, SE cambia come segue:

IF [/ I] string1 compare-op string2 comando IF CMDEXTVERSION numero comando IF DEFINED comando variabile

dove compare-op può essere uno dei seguenti:

  • EQU: uguale
  • NEQ - non uguale
  • LSS - inferiore a
  • LEQ - minore o uguale
  • GTR - maggiore di
  • GEQ - maggiore o uguale

e l'opzione / I, se specificato, dice di fare confronti tra maiuscole e minuscole. L'opzione / I può essere utilizzata anche nella forma string1 == string2 di IF. Questi confronti sono generici, se sia stringa1 che stringa2 sono composte da tutte le cifre numeriche, vengono convertite in numeri e viene eseguito un confronto numerico.

Il condizionale CMDEXTVERSION funziona come ERRORLEVEL, tranne per il confronto con un numero di versione interno associato alle estensioni di comando. La prima versione è 1. Verrà incrementata di una quando verranno aggiunti miglioramenti significativi alle estensioni di comando. La condizione CMDEXTVERSION non è mai vera quando le estensioni di comando sono disabilitate.

Il condizionale DEFINED funziona come EXISTS tranne per il fatto che prende un nome di variabile di ambiente e restituisce true se la variabile di ambiente è definita.

% ERRORLEVEL% si espande in una stringa del valore corrente di ERRORLEVEL, a condizione che non vi sia già una variabile di ambiente con il nome ERRORLEVEL, nel qual caso si ottiene il suo valore. Dopo aver eseguito un programma, l'esempio seguente illustra l'uso di ERRORLEVEL:

vai a risposta% ERRORLEVEL%: answer0 echo Il codice aveva il codice di ritorno 0: answer1 echo Il programma aveva il codice di ritorno 1

Puoi anche usare i confronti numerici di seguito:

SE% ERRORLEVEL% LEQ 1 va bene

% CMDCMDLINE% si espande alla riga di comando passata a CMD.EXE prima di qualsiasi elaborazione da parte di CMD.EXE, a condizione che non vi sia una variabile di ambiente CMDCMDLINE, nel qual caso si ottiene il suo valore.

% CMDEXTVERSION% si espande in una stringa del valore di CMDEXTVERSION, a condizione che non vi sia già una variabile di ambiente con il nome CMDEXTVERSION, nel qual caso si ottiene il suo valore.

Windows XP e sintassi precedente

Esegue l'elaborazione condizionale nei programmi batch.

IF [NOT] ERRORLEVEL comando numerico IF [NOT] string1 == string2 comando IF [NOT] EXIST comando nome file

NON Specifica che Windows deve eseguire il comando solo se la condizione è falsa.
Numero ERRORLEVEL Specifica una condizione vera se l'ultimo programma eseguito ha restituito un codice di uscita uguale o maggiore del numero specificato.
comando Specifica il comando da eseguire se la condizione è soddisfatta.
stringa1 == stringa2 Specifica una condizione vera se le stringhe di testo specificate corrispondono.
Nome file EXIST Specifica una condizione vera se esiste il nome file specificato.