Partager via


Cmd

Démarre une nouvelle instance de l’interpréteur de commandes, cmd.exe. S’il est utilisé sans paramètres, cmd affiche les informations de version et de copyright du système d’exploitation.

Remarque

Les utilisateurs qui recherchent des fonctionnalités plus avancées sont encouragés à explorer PowerShell pour améliorer les scripts et l’automatisation.

Syntaxe

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

Paramètres

Paramètre Descriptif
/C Exécute la commande spécifiée par <string> , puis quitte le processeur de commandes.
/k Exécute la commande spécifiée et <string> conserve le processeur de commandes en cours d’exécution.
/s Lorsqu’elle est utilisée avec /c ou /k, déclenche des règles spéciales sans analyse qui suppriment les premières et dernières guillemets (") autour de la <string> commande, mais laisse le reste de la commande inchangée.
/q Désactive l’écho.
/d Désactive l’exécution des commandes AutoRun.
/un Met en forme la sortie de commande en tant qu’American National Standards Institute (ANSI).
/U Met en forme la sortie de commande en tant qu’Unicode.
/t :{<b><f> | <f>} Définit les couleurs d’arrière-plan (b) et de premier plan (f).
/e :on Active les extensions de commande.
/e :off Désactive les extensions de commandes.
/f :on Active la saisie semi-automatique du nom du fichier et du répertoire.
/f :off Désactive la saisie semi-automatique du nom du fichier et du répertoire.
/v :on Active l’extension des variables d’environnement retardées.
/v :off Désactive l’extension des variables d’environnement retardées.
<string> Spécifie la commande que vous souhaitez exécuter.
/? Affiche l’aide à l’invite de commandes.

Le tableau suivant répertorie les chiffres hexadécimaux valides que vous pouvez utiliser comme valeurs pour <b> et <f>:

Valeur Couleur
0 Noir
1 Bleu
2 Vert
3 Vert d'eau
4 Rouge
5 Pourpre
6 Jaune
7 Blanc
8 Gris
9 Bleu clair
un Vert clair
b Aqua clair
c Rouge clair
d Violet clair
e Jaune clair
f Blanc lumineux

Remarques

  • Pour rediriger la sortie de commande vers l’entrée d’une autre commande, utilisez l’opérateur de canal (|). Par exemple:

    <command1> | <command2>
    
  • L’opérateur double canal (||) est utilisé pour exécuter la commande suivante uniquement si la commande précédente échoue. Dans le scénario donné, command2 est exécuté uniquement en command1 cas d’échec. Par exemple:

    <command1> || <command2>
    
  • Pour rediriger la sortie de commande vers un fichier, utilisez le caractère de crochet supérieur à celui du crochet > . Par exemple:

    <command1> > <file1.txt>
    
  • Pour regrouper ou imbriquer plusieurs commandes ensemble, utilisez &. Par exemple:

    <command1> & <command2>
    
  • Pour utiliser plusieurs commandes, <string>séparez-les par le séparateur &&de commandes. Par exemple:

    <command1> && <command2> && <command3>
    

    Remarque

    Lorsque vous utilisez &&, la commande suivante && s’exécute uniquement si la commande précédente se termine correctement. Cmd exécute la première commande et passe à la suivante uniquement si la commande précédente a réussi. Sinon, si la commande précédente échoue, les commandes suivantes ne seront pas exécutées.

  • L’ampersand &, le canal |et les ( ) parenthèses sont des caractères spéciaux qui doivent être précédés du caractère ^ d’échappement ou des guillemets lorsque vous les transmettez en tant qu’arguments.

  • Si une commande termine correctement une opération, elle retourne un code de sortie de zéro (0) ou aucun code de sortie.

  • Si le chemin d’accès au répertoire, les fichiers ou les informations que vous fournissez contient des espaces, vous devez utiliser des guillemets doubles (" ") autour du texte, par "Computer Name"exemple . Par exemple:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • Vous devez utiliser des guillemets autour des caractères spéciaux suivants : & <> [ ] | { } ^ = ; ! ' + , ' ~ [espace blanc].

  • Si vous spécifiez /c ou , les /k processus, le reste et cmdles guillemets sont conservés uniquement si toutes les conditions suivantes <string>sont remplies :

    • Vous n’utilisez /spas non plus .
    • Vous utilisez exactement un ensemble de guillemets.
    • Vous n’utilisez aucun caractère spécial dans les guillemets, par exemple : & <> ( ) @ ^ |.
    • Vous utilisez un ou plusieurs espaces blancs dans les guillemets.
    • Les <string> guillemets entre guillemets sont le nom d’un fichier exécutable.

    Si les conditions précédentes ne sont pas remplies, <string> elle est traitée en examinant le premier caractère pour vérifier s’il s’agit d’un guillemet ouvrant. Si le premier caractère est un guillemet ouvrant, il est supprimé avec le guillemet fermant. Tout texte suivant les guillemets fermants est conservé.

  • Si vous ne spécifiez /dpas, cmd recherchez les sous-clés de Registre suivantes :

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    Si une ou les deux sous-clés de Registre sont présentes, elles sont exécutées avant toutes les autres variables.

  • Vous pouvez désactiver les extensions de commande pour un processus particulier à l’aide /e:offde . Vous pouvez activer ou désactiver des extensions pour toutes les cmd options de ligne de commande sur un ordinateur ou une session utilisateur en définissant les valeurs de REG_DWORD suivantes :

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    Définissez la valeur REG_DWORDsur 0×1 (activé) ou 0×0 (désactivé) dans le Registre à l’aide de Regedit.exe. Les paramètres spécifiés par l’utilisateur sont prioritaires sur les paramètres de l’ordinateur et les options de ligne de commande sont prioritaires sur les paramètres du Registre.

    Avertissement

    Une modification incorrecte du Registre peut gravement endommager votre système. Avant toute modification du registre, il est conseillé de sauvegarder toutes les données importantes de votre ordinateur.

  • Lorsque vous activez les extensions de commande, les commandes suivantes sont affectées :

    • assoc
    • call
    • chdir (cd)
    • color
    • del (erase)
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdir (md)
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (inclut également les modifications apportées aux processus de commande externes)
  • Si vous activez l’extension de variable d’environnement retardée, vous pouvez utiliser le caractère de point d’exclamation (!) pour remplacer la valeur d’une variable d’environnement au moment de l’exécution.

  • La saisie semi-automatique du nom de fichier et du répertoire n’est pas activée par défaut. Vous pouvez activer ou désactiver l’achèvement du nom de fichier pour un processus particulier de la cmd commande avec /f:{on | off}.

  • Vous pouvez activer ou désactiver l’achèvement du nom du fichier et du répertoire pour tous les processus de la cmd commande sur un ordinateur ou pour une session d’ouverture de session utilisateur en définissant les valeurs de REG_DWORD suivantes :

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    Pour définir la valeur REG_DWORD , exécutez Regedit.exe et utilisez la valeur hexadécimale d’un caractère de contrôle pour une fonction particulière (par exemple, 0×9 est TAB et 0×08 est BACKSPACE). Utilisez la valeur [0×20] pour l’espace blanc, car il n’est pas un caractère de contrôle valide. Les paramètres spécifiés par l’utilisateur sont prioritaires sur les paramètres de l’ordinateur et les options de ligne de commande sont prioritaires sur les paramètres du Registre.

    Avertissement

    Une modification incorrecte du Registre peut gravement endommager votre système. Avant toute modification du registre, il est conseillé de sauvegarder toutes les données importantes de votre ordinateur.

  • Si vous activez l’achèvement du nom de fichier et du répertoire à l’aide /f:onde , utilisez Ctrl+D pour la saisie semi-automatique du nom de répertoire et ctrl+F pour la saisie semi-automatique du nom de fichier. La seule différence entre les combinaisons de touches Ctrl+D et Ctrl+F est que Ctrl+D correspond uniquement aux noms de répertoires et ctrl+F correspond aux noms de fichiers et de répertoires. Si vous utilisez la saisie semi-automatique du nom de fichier et du répertoire sur les commandes de répertoire intégrées cd, mdou rdsi vous utilisez la saisie semi-automatique du répertoire.

  • Appuyez sur Ctrl+D ou Ctrl+F pour traiter la saisie semi-automatique du nom du fichier et du répertoire. Ces fonctions de combinaison de touches ajoutent un caractère générique si <string> un caractère n’est pas présent, créez une liste de chemins correspondants, puis affichez le premier chemin correspondant. Si aucun des chemins ne correspond, la fonction de saisie semi-automatique de nom de fichier et de répertoire ne change pas l’affichage.

    • Pour parcourir la liste des chemins correspondants, appuyez sur Ctrl+D ou Ctrl+F à plusieurs reprises.
    • Pour parcourir la liste vers l’arrière, appuyez simultanément sur la touche Maj et Ctrl+D ou Ctrl+F .
    • Pour ignorer la liste enregistrée des chemins correspondants et générer une nouvelle liste, modifiez et appuyez <string>sur Ctrl+D ou Ctrl+F.
    • Si vous basculez entre Ctrl+D et Ctrl+F, la liste enregistrée des chemins correspondants est ignorée et une nouvelle liste est générée.
  • La saisie semi-automatique du nom de fichier et du répertoire traite correctement les noms de fichiers qui contiennent des espaces blancs ou des caractères spéciaux si vous placez des guillemets autour du chemin correspondant.

  • Si vous traitez la saisie semi-automatique du nom du fichier et du répertoire à partir du <string>moment où <string> la saisie semi-automatique a été traitée, toute partie du chemin d’accès à droite du curseur est ignorée.

Utilisation de variables d’environnement

L’environnement cmd de l’interpréteur de commandes est défini par des variables qui déterminent le comportement de l’interpréteur de commandes et du système d’exploitation. Vous pouvez définir le comportement de l’environnement de l’interpréteur de commandes ou de l’environnement du système d’exploitation entier à l’aide de deux types de variables d’environnement, système et local. Les variables d’environnement système définissent le comportement de l’environnement de système d’exploitation global. Les variables d’environnement locales définissent le comportement de l’environnement de l’instance actuelle de cmd.

Seuls les utilisateurs disposant de privilèges d’administration peuvent modifier les variables système. Ces variables sont les plus couramment utilisées dans les scripts d’ouverture de session. Les variables d’environnement locales sont disponibles uniquement lorsque l’utilisateur pour lequel ils ont été créés est connecté à l’ordinateur. Les variables locales définies dans la ruche HKEY_CURRENT_USER sont valides uniquement pour l’utilisateur actuel, mais définissent le comportement de l’environnement de système d’exploitation global.

La liste suivante décrit les différents types de variables dans l’ordre décroissant de priorité :

  1. Variables système intégrées.
  2. Variables système trouvées dans la ruche HKEY_LOCAL_MACHINE .
  3. Variables locales trouvées dans la ruche HKEY_CURRENT_USER .
  4. Toutes les variables d’environnement et chemins définis dans le fichier Autoexec.bat.
  5. Toutes les variables et chemins d’accès d’environnement définis dans un script d’ouverture de session (le cas échéant).
  6. Variables utilisées de manière interactive dans un script ou un fichier de commandes.

Dans l’interpréteur de commandes, chaque instance de cmd hérite de l’environnement de son application parente. Par conséquent, vous pouvez modifier les variables dans le nouvel cmd environnement sans affecter l’environnement de l’application parente.

Vous pouvez afficher les variables d’environnement dans votre environnement en exécutant l’une des commandes suivantes :

set
Get-ChildItem Env:

Définition des variables d’environnement

Pour afficher une variable, tapez :

set <VariableName>

Pour ajouter une variable, tapez :

set <VariableName>=<value>

Pour supprimer une variable, tapez :

set <VariableName>=

Vous pouvez utiliser la plupart des caractères comme valeurs de variable, y compris des espaces blancs. Si vous utilisez les caractères <spéciaux , >|, &ou ^, vous devez les précéder du caractère ^ d’échappement ou des guillemets doubles. Si vous utilisez des guillemets doubles, ils sont inclus dans le cadre de la valeur, car tout ce qui suit le signe égal est pris comme valeur. Prenons les exemples suivants :

Pour créer la valeur New&Namede la variable, tapez :

set <VariableName>=New^&Name

Pour créer la valeur "New&Name"de la variable, tapez :

set <VariableName>="New&Name"

Si vous tapez set <VariableName>=New&Name (sans carat ^ ou guillemets doubles) à l’invite de commandes, le message d’erreur suivant peut s’afficher :

"'Name' is not recognized as an internal or external command, operable program or batch file."

Les noms de variables ne respectent pas la casse. Toutefois, set affiche la variable exactement comme vous l’avez tapée. Vous pouvez combiner des lettres majuscules et minuscules dans vos noms de variables pour rendre votre code plus lisible, par exemple , UserName.

Remarque

  • La taille maximale de la variable d’environnement est de 8 192 octets.
  • La taille totale maximale de toutes les variables d’environnement, y compris les noms, les valeurs et les signes égaux, est de 65 536 caractères pour un processus.

Substitution des valeurs de variable d’environnement

Pour remplacer les valeurs de variable dans la ligne de commande ou les scripts, placez le nom de la variable dans les signes de pourcentage (%VariableName%). Cela permet cmd de référencer la valeur de la variable au lieu de la traiter comme du texte littéral. Lorsqu’un script est exécuté, cmd remplace les instances de la variable par sa valeur. Par exemple, l’utilisation de %USERNAME% dans un script remplace automatiquement le nom d’utilisateur réel. La substitution de variable n’est pas récursive ; cmd vérifie les variables une seule fois.