Cmd
Cmd (de command prompt en anglais) ou l'invite de commandes est un logiciel d'interprétation des commandes DOS, Windows et OS/2 qui affiche une interface utilisateur en ligne de commande de type Win32. Son développement, particulièrement lent depuis Windows 2000, a été activement relancé début 2016[1], afin de concurrencer les terminaux Linux. Son ancêtre sous MS-DOS (présent dans Windows 9x) était le programme COMMAND. Il est l'équivalent du shell Unix. Il peut interpréter des fichiers Batch qui contiennent une série de commandes.
Command Prompt
Développé par | Microsoft |
---|---|
Fichier exécutable |
cmd.exe |
Environnement | OS/2, Windows NT, Windows 2000, Windows XP, Windows 7, Windows 8, Windows 10, Windows 11 |
Langues | Multilingue |
Type | Interpréteur de commandes et Console Win32 |
Politique de distribution | incorporé dans Windows |
Licence | Propriétaire |
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 .
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 suite de commandes sous les premières versions de MS-DOS, il permet une programmation plus évoluée à partir des versions 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. Celui-ci fut inclus dans MS-DOS, la branche 9x de Windows (Windows 95, 98, Me) et Windows NT jusqu'à Windows 2000. Il fut donc retiré dans Windows XP pour se concentrer sur cmd.exe. Les programmes batch pour MS-DOS sont composés d'un ensemble relativement simple 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 connu est l'interpréteur 4NT (équivalent de 4DOS sous Windows NT). 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érente 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. D'abord distribué séparément, il a été intégré nativement dans Windows 7. Dans Windows 10 (sorti en 2015), cmd.exe a été amélioré et permet par exemple d'avoir un invite de commande en plein écran ou encore d'utiliser les raccourcis clavier pour copier-coller, rechercher, etc.
Exécution de l'interpréteur de commandes
Sous Windows Vista, Windows 7, Windows 8 et Windows 10 et ultérieures, il suffit de taper la commande cmd dans la barre de recherches de Windows Desktop Search, situé dans le menu démarrer. Pour les autres versions antérieures (Windows XP, Windows 2000, etc), il faut aller dans Menu Démarrer > Exécuter, puis taper cmd et cliquer sur OK.
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%