Cmd exe

Cmd exe

Cmd.exe

cmd.exe est l'interpréteur de commande en mode texte de Windows NT et OS/2. Son ancêtre, sous MS-DOS (et présent dans Windows 9x) était command.com. Il est l'équivalent du shell sous Unix ou cygwin. Il peut interpréter des fichiers batch qui sont des fichiers textes contenant une série de commandes (Voir interpréteur de commandes).

Sommaire

Fichiers batch

Quand le fichier batch est lancé, de la même manière (d'un point de vue utilisateur) qu'un exécutable ordinaire, les commandes du fichier sont exécutées dans l'ordre. Un fichier batch est l'équivalent d'un script shell sous Unix ou cygwin.

Les fichiers batch du Windows NT sont les fichiers dotés de l’extension .BAT ou .CMD. Leur syntaxe est héritée de COMMAND.COM de MS-DOS, mais est nettement plus puissante.

Histoire et évolutions

La programmation des fichiers scripts sous les systèmes d'exploitation Microsoft a beaucoup évolué. Au départ, simple suites de commande sous les premières versions de MS-DOS, il permet un peu de programmation dans les versions livrées avec Windows 2000 et Windows XP.

Il existe deux modes d'exécution :

  • Un mode interactif
  • Un mode exécution de scripts

Dans le mode interactif, l'utilisateur tape les commandes qui sont exécutées immédiatement. Le mode script exécute une séquence de commandes définies dans un fichier batch.

À l'origine, le système MS-DOS fournit un interpréteur : command.com. Les programmes batch pour MS-DOS sont composés d'un ensemble relativement simple d'ensemble de commandes interprétées directement par command.com (commande interne) et des utilitaires qui existent en tant qu'exécutables séparés (commande externe).

Il existe des interpréteurs de commande plus évolués fournis par d'autres sociétés. Le plus connus est l'interpréteur 4NT (équivalent de 4DOS sous Windows NT) de la société JP Soft.

Le système d'exploitation OS/2 comprend également un interpréteur de commande cmd.exe apparenté à celui de Windows NT.

Microsoft semble avoir abandonné les améliorations des fichiers batch pour se concentrer sur les scripts en VBScript ou Jscript permettant une programmation plus structurée et cohérentes avec les langages de macros de la suite Microsoft Office.

Avec le développement de Windows Vista, Microsoft a créé Windows PowerShell, basé sur la programmation orientée objet et Microsoft .NET. Finalement, il n'a pas été intégré à Vista et est disponible séparément.

Commandes internes

On peut obtenir de l'aide sur toutes les commandes en tapant leur nom suivi de /? :

C:\>echo /?
Affiche des messages ou active/désactive l'affichage des commandes.

 ECHO [ON | OFF]
 ECHO [message]

ECHO sans paramètres affiche l'état en cours de la commande.

ECHO

Affiche une chaîne sur la sortie. Permet également d'autoriser ou d'interdire l'affichage des commandes sur la sortie standard par les commandes ECHO ON et ECHO OFF

Le comportement par défaut de cmd.exe est d'afficher chaque commande sur la sortie standard avant de l'exécuter. C'est souvent non désiré, la commande ECHO OFF est souvent donnée au début d'un fichier batch. Cmd.exe interprète également le @, préfixé à la commande, pour empêcher une seule commande de s'afficher. De ce fait, beaucoup de fichiers batch commencent par la ligne @ECHO OFF.

 :: ou REM

Commentaire.

SET

Sert à modifier des variables d'environnement. Équivalent de set et export sous bash

FOR

Sorte de for. On peut grouper plusieurs commandes à l'aide de parenthèses. Par exemple :

for %x in (*.c) do (
  echo copie de %x
  copy %x c:\sos\
)

Cette commande a de nombreuses options la rendant beaucoup plus puissante que sa version MS-DOS.

SHIFT

Décale les arguments. Équivalent du shift de bash.

GOTO

Dirige cmd.exe sur une ligne étiquetée dans le programme de commandes. Les étiquettes sont sur un lignes précédées du caractère ":". Hérité des premières versions de COMMAND.COM qui ne permettaient pas beaucoup de structuration.

IF

Le if connu de tous les programmeurs.

ERRORLEVEL

Utilisé avec IF, teste si la valeur de retour d'un programme atteint ou dépasse une erreur donnée. Equivalent du $? de bash. Par exemple:

IF ERRORLEVEL 6 GOTO label

Continuera l'exécution à l'étiquette label si le dernier programme exécuté a retourné une valeur supérieure ou égale à 6.

CALL

Appelle un autre programme batch. En effet l'appel simple à un fichier batch provoquera l'enchaînement du fichier sans retour possible vers le fichier appelant.

Permet également d'appeler une fonction (matérialisée par un label (:) et un retour au programme principal par GOTO :EOF)

Exemple d'appel de fonction avec un argument :

@ECHO OFF

ECHO "Avant fonction1"
CALL :fonction1 arg1
ECHO "Apres fonction1"
REM Sortie du programme
GOTO :EOF

:fonction1
ECHO "Fonction1 avec argument: %1"
REM Sortie de la fonction
GOTO :EOF

START

Démarre une nouvelle fenêtre pour exécuter le programme ou la commande donné. Par exemple

start netscape 

permet de démarrer la commande "netscape" dans une nouvelle fenêtre sans attendre la fin de son exécution. Il existe de nombreuses options.

Exemple

:: Start Vim on a copy of the tutor file.
@echo off  
:: Usage: vimtutor [-console] [xx]
::
:: -console means gvim will not be used
:: xx is a language code like "es" or "nl".
:: When an xx argument is given, it tries loading that tutor.
:: When this fails or no xx argument was given, it tries using 'v:lang'
:: When that also fails, it uses the English version. 
:: Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
FOR %%d in (. %TMP% %TEMP%) DO IF EXIST %%d\nul SET TUTORCOPY=%%d\$tutor$ 
SET xx=%1
IF NOT .%1==.-console GOTO use_gui
SHIFT
SET xx=%1
GOTO use_vim
:use_gui  
:: Try making a copy of tutor with gvim. If gvim cannot be found, try using
:: vim instead. If vim cannot be found, alert user to check environment and
:: installation. 
:: The script tutor.vim tells Vim which file to copy.
:: For Windows NT "start" works a bit differently.
IF .%OS%==.Windows_NT GOTO ntaction 
start /w gvim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim"
IF ERRORLEVEL 1 GOTO use_vim
:: Start gvim without any .vimrc, set 'nocompatible'
start /w gvim -u NONE -c "set nocp" %TUTORCOPY%

Voir aussi

Windows NT

Liens externes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Cmd.exe ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Cmd exe de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • cmd.exe — cmd.exe, Lorem ipsum anzeigend Basisdaten Entwickler Microsoft Corporation Betriebssyst …   Deutsch Wikipedia

  • Cmd.exe — cmd.exe, Lorem ipsum anzeigend, mit dem Standardtitel unter Windows 2000, Eingabeaufforderung Basisdaten Entwickler: Microsoft Corpora …   Deutsch Wikipedia

  • Cmd.exe — es el intérprete de linea de comandos en OS/2 y sistemas basados en Windows NT (incluyendo Windows 2000, Windows XP, y Windows Server 2003). Es el equivalente de command.com en MS DOS y sistemas de la familia Windows 9x …   Enciclopedia Universal

  • Cmd.exe — У этого термина существуют и другие значения, см. Cmd. cmd.exe Windows после запуска Cmd.exe  интерпретатор командной строки (англ. command line interpreter) для операционных сис …   Википедия

  • Cmd.exe — Sketch of cmd.exe, with fictional language. cmd.exe est l interpréteur de commande en mode texte de Windows NT et OS/2. Son ancêtre, sous MS DOS (et présent dans Windows 9x) était command.com. Il est l équivalent du shell sous Unix ou cygwin. Il… …   Wikipédia en Français

  • CMD.EXE — …   Википедия

  • Переменные среды cmd.exe — Переменные окружения (переменные среды, англ. environment variable) используются для настройки многих операционных систем. Список переменных В современных ОС компании NT для получения информации о системе используются следующие переменные:… …   Википедия

  • Cmd (Windows) — Saltar a navegación, búsqueda cmd.exe es el intérprete de comandos en OS/2 y sistemas basados en Windows NT (incluyendo Windows 2000, Windows XP, Windows Server 2003, y Windows Vista). Es el equivalente de command.com en MS DOS y sistemas de la… …   Wikipedia Español

  • CMD — is a three letter abbreviation that could mean, depending on context: * A common abbreviation for command (especially used in a computer context) * Canis Major Dwarf galaxy orbiting the Milky Way. * Cable Mágico Deportes, a Peruvian sports… …   Wikipedia

  • Cmd — может означать: cmd.exe  интерпретатор командной строки в некоторых операционных средах. .cmd  расширение пакетных файлов в некоторых операционных средах. Cmd  служебная клавиша на клавиатуре компьютеров Macintosh. «Creative Micro… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”