Ligne de commande MS-DOS et Windows si commande

Table des matières:

Ligne de commande MS-DOS et Windows si commande
Ligne de commande MS-DOS et Windows si commande

Vidéo: commande de Windows ms dos 2024, Mai

Vidéo: commande de Windows ms dos 2024, Mai
Anonim

La commande if effectue un traitement conditionnel dans les programmes batch.

Disponibilité

La commande if est une commande interne accessible et utilisée dans les fichiers de commandes.

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

Syntaxe

  • Windows Vista et syntaxe ultérieure.
  • Windows XP et syntaxe antérieure.

Windows Vista et syntaxe ultérieure

IF [NOT] ERRORLEVEL number command IF [NOT] string1 == string2 command IF [NOT] EXIST filename command

NE PAS Spécifie que Windows 2000 ou XP ne doit exécuter la commande que si la condition est fausse.
Numéro NIVEAU D'ERREUR Spécifie une condition vraie si la dernière exécution du programme a renvoyé un code de sortie égal ou supérieur au nombre spécifié.
string1 == string2 Spécifie une condition vraie si les chaînes de texte spécifiées correspondent.
EXIST nom de fichier Spécifie une vraie condition si le nom de fichier spécifié existe.
commander Spécifie la commande à exécuter si la condition est remplie. La commande peut être suivie de la commande ELSE qui exécutera la commande après le mot clé ELSE si la condition spécifiée est FALSE.

La clause ELSE doit apparaître sur la même ligne que la commande après l'IF. Par exemple:

SI EXISTANT nom de fichier. (del filename.) ELSE (echo filename. missing.)

L'exemple ci-dessous ne fonctionnerait PAS car la commande del doit être terminée par une nouvelle ligne:

SI EXISTANT nom de fichier. del nom de fichier. ELSE echo nom de fichier. manquant

L'exemple ci-dessous ne fonctionnerait pas non plus, car la commande ELSE doit être sur la même ligne que la fin de la commande IF:

SI EXISTANT nom de fichier. del nom de fichier. ELSE echo nom de fichier. manquant

L'exemple ci-dessous fonctionnerait si vous voulez tout sur une seule ligne:

SI EXISTANT nom de fichier. (del filename.) ELSE echo nom de fichier. manquant

Si les extensions de commande sont activées, IF change comme suit:

IF [/ I] string1 compare-op string2 commande IF CMDEXTVERSION nombre commande IF DEFINED variable commande

où compare-op peut être l'un des éléments suivants:

  • EQU - égal
  • NEQ - pas égal
  • LSS - moins de
  • LEQ - inférieur ou égal
  • GTR - supérieur à
  • GEQ - supérieur ou égal

et le commutateur / I, s'il est spécifié, indique d'effectuer des comparaisons de chaînes insensibles à la casse. Le commutateur / I peut également être utilisé sur la forme string1 == string2 de IF. Ces comparaisons sont génériques, si string1 et string2 sont composés de tous les chiffres numériques, ils sont convertis en nombres et une comparaison numérique est effectuée.

Le conditionnel CMDEXTVERSION fonctionne comme ERRORLEVEL, sauf qu'il compare avec un numéro de version interne associé aux extensions de commande. La première version est 1. Elle sera incrémentée d'une unité lorsque des améliorations importantes seront ajoutées aux extensions de commande. CMDEXTVERSION conditionnel n'est jamais vrai lorsque les extensions de commande sont désactivées.

Le conditionnel DEFINED fonctionne comme EXISTS, sauf qu'il prend un nom de variable d'environnement et renvoie true si la variable d'environnement est définie.

% ERRORLEVEL% se développe dans une chaîne de la valeur actuelle de ERRORLEVEL, à condition qu'il n'y ait pas déjà une variable d'environnement avec le nom ERRORLEVEL, auquel cas vous obtenez sa valeur. Après avoir exécuté un programme, l'exemple ci-dessous illustre l'utilisation de ERRORLEVEL:

goto answer% ERRORLEVEL%: answer0 echo Program had return code 0: answer1 echo Program had return code 1

Vous pouvez également utiliser les comparaisons numériques ci-dessous:

SI% ERRORLEVEL% LEQ 1 va bien

% CMDCMDLINE% se développe sur la ligne de commande passée à CMD.EXE avant tout traitement par CMD.EXE, à condition qu'il n'y ait pas de variable d'environnement CMDCMDLINE, auquel cas vous obtenez sa valeur.

% CMDEXTVERSION% se développe en une chaîne de la valeur de CMDEXTVERSION, à condition qu'il n'y ait pas déjà une variable d'environnement avec le nom CMDEXTVERSION, auquel cas vous obtenez sa valeur.

Windows XP et syntaxe antérieure

Effectue un traitement conditionnel dans les programmes batch.

IF [NOT] ERRORLEVEL number command IF [NOT] string1 == string2 command IF [NOT] EXIST filename command

NE PAS Spécifie que Windows ne doit exécuter la commande que si la condition est fausse.
Numéro NIVEAU D'ERREUR Spécifie une condition vraie si la dernière exécution du programme a renvoyé un code de sortie égal ou supérieur au nombre spécifié.
commander Spécifie la commande à exécuter si la condition est remplie.
string1 == string2 Spécifie une condition vraie si les chaînes de texte spécifiées correspondent.
EXIST nom de fichier Spécifie une vraie condition si le nom de fichier spécifié existe.