DOS

Un livre de Wikilivres.

Une version imprimable du livre « DOS » est disponible. (voir/modifier)


Invite de commande MS-DOS.
Icône du MS-DOS dans les premières versions de Windows


Le DOS (Disk Operating System) est un système d'exploitation mono-tâche datant des débuts des ordinateurs personnels. Le plus connu est MS-DOS, de la société Microsoft, qui a été choisi par IBM pour équiper ses tout premiers PC (Personal Computer), et a ensuite été présent sur la plupart des « compatibles » ; il n'est maintenant plus maintenu. Un concurrent a été DR-DOS, racheté et renommé plusieurs fois et finalement abandonné. Actuellement il existe FreeDOS, un DOS gratuit et open-source.

Les différentes versions de Windows NT (2000, NT4, XP et Vista) offrent une interface en ligne de commande, qu'on appelle parfois « fenêtre DOS ». La présentation et certaines commandes sont semblables au MS-DOS. De même, les systèmes Windows reposant (en partie) sur une couche MS-DOS (Windows 3.x, 95, 98, et ME) permettaient également un accès au DOS à l'intérieur d'une fenêtre.

Les commandes permettent la manipulation de fichiers et de répertoires, l'exécution d'applications, et l'exécution de scripts de traitement par lots (fichiers batch).

Syntaxe des commandes[modifier | modifier le wikicode]

La syntaxe d'une commande est la suivante :

  • nom de la commande : commande interne ou chemin de l'application (fichier exécutable ou script) à lancer,
  • arguments de cette commande.

Le séparateur utilisé est le caractère espace.

Chemin des fichiers[modifier | modifier le wikicode]

Beaucoup de commandes utilisent des chemins pour désigner les fichiers traités. Un chemin est une suite de caractères désignant le chemin de la façon suivante :

  • soit le chemin donné est absolu, il désigne alors un fichier précis quel que soit le contexte,
  • soit le chemin donné est relatif au chemin contextuel courant (répertoire de travail), le fichier désigné dépend donc du contexte.

Contrairement au monde Unix, le caractère séparant les différentes parties est le backslash (\).

Fichiers et répertoires[modifier | modifier le wikicode]

Un fichier contient des données. Un répertoire contient des fichiers et d'autres répertoires.

La syntaxe générale[modifier | modifier le wikicode]

Un chemin est composé des éléments suivants (chacun étant optionnel sauf indication contraire) :

  • une lettre de lecteur suivie du caractère deux-points, sinon le lecteur utilisé est le lecteur contextuel courant,
  • le caractère anti-slash pour partir de la racine du lecteur, si ce caractère est présent, le chemin est absolu, sinon il est relatif au répertoire courant (du lecteur désigné ou courant),
  • la suite de répertoires où se trouve le fichier, chaque répertoire étant suivi du caractère anti-slash,
  • (obligatoire) le nom du fichier ou répertoire désigné.

Le DOS ne distingue pas les minuscules des majuscules. C'est à dire que les chemins suivants désignent le même fichier :

c:\Dos\command.com
C:\dos\command.COM
C:\DOS\Command.Com
C:\dOs\CoMmAnD.CoM

Les lettres de lecteur[modifier | modifier le wikicode]

Les lettres de lecteur sont toujours suivies du caractère deux-points et désignent un support particulier. Ce support peut être :

  • un lecteur de disquette,
  • un disque dur,
  • une partition du disque dur,
  • un disque virtuel en RAM,
  • un lecteur réseau,
  • un pseudo-lecteur pointant un répertoire.

Le lecteur contextuel courant est modifié en tapant la lettre de lecteur suivie du caractère deux-points. L'invite de commande par défaut indique le lecteur courant et le répertoire de travail courant sur ce lecteur.

Exemples :

C:\DOS> a:
A:\> c:
C:\DOS>

En règle générale, les lecteurs sont assignés de la manière suivante :

  • le lecteur A: désigne le premier lecteur de disquettes,
  • le lecteur B: désigne le deuxième lecteur de disquettes,
  • le lecteur C: désigne la première partition du disque dur,
  • les lecteurs suivants (D:, E: ...) désignent les partitions suivantes,
  • les lecteurs suivants désignent les lecteurs/graveurs de CD ou DVD,
  • les lecteurs suivants désignent les supports amovibles (Clé USB, ...).

Répertoires spéciaux[modifier | modifier le wikicode]

Deux répertoires spéciaux sont définis dans chaque répertoire du système de fichiers :

  • le répertoire courant nommé . désigne le répertoire lui-même,
  • le répertoire parent nommé .. désigne le répertoire contenant celui-ci.

C'est à dire que les chemins suivants désignent le même répertoire :

C:\Windows
C:\Windows\.
C:\Windows\System\..
C:\Windows\.\System\..
C:\Windows\.\.\System\..\.

Le répertoire contextuel courant[modifier | modifier le wikicode]

L'environnement de l'interpréteur de commandes garde en mémoire le répertoire de travail pour chaque lecteur. Ce répertoire est modifié par la commande Chdir (ou Cd). Certaines versions fournissent également les commandes Pushd et Popd.

Exemples :

C:\> cd dos
C:\DOS> cd ..
C:\> cd a:\drivers
C:\> a:
A:\DRIVERS>

Ce répertoire de travail permet de désigner de façon plus concise les fichiers et sous-répertoires qu'il contient. Il permet de déterminer le chemin absolu d'un fichier à partir d'un chemin relatif.

Redirection[modifier | modifier le wikicode]

Il est possible de rediriger l'entrée et les sorties standards de la commande depuis/vers un fichier texte, en utilisant les caractères suivants :

  • < pour lire les données depuis un fichier au lieu du clavier,
  • > pour enregistrer la sortie de la commande dans un nouveau fichier au lieu de l'afficher à l'écran,
  • >> pour enregistrer la sortie de la commande à la fin d'un fichier existant au lieu de l'afficher à l'écran.

Exemples :

date < input1.txt > output.txt
time < input2.txt >> output.txt

Il est possible de faire précéder le signe > par le numéro du flux standard redirigé :

  • 1 désigne la sortie standard (stdout),
  • 2 désigne la sortie d'erreur (stderr).

Par défaut il s'agit du flux 1 (sortie standard).

Exemple :

date < input1.txt 1> output.txt 2> error.txt

Il est également possible de rediriger un flux vers l'autre, afin par exemple de les rediriger tous les deux vers le même fichier. Dans ce cas, l'un des deux est redirigé vers l'autre en le nommant après le caractère & :

date < input1.txt 1> output_and_error.txt 2>&1

Enfin, il est possible de rediriger une commande vers NUL au lieu d'un fichier pour simplement masquer l'affichage de la commande :

DATE > NUL

Enchaîner les commandes[modifier | modifier le wikicode]

Les commandes sont en général séparées par un retour à la ligne. Elles sont exécutées l'une après l'autre, quel que soit les erreurs qui peuvent se produire. On peut également les placer sur la même ligne en les séparant par les caractères suivants :

  • & pour enchaîner les commandes comme avec le retour à la ligne.
    Exemple :
copy D:\a.txt C:\ & delete D:\a.txt
  • && pour enchaîner les commandes seulement si la commande qui précède ne retourne pas d'erreur.
    Exemple :
copy D:\a.txt C:\ && delete D:\a.txt
  • || pour enchaîner les commandes seulement si la commande qui précède retourne une erreur.
    Exemple :
copy D:\a.txt C:\ || copy E:\a.txt C:\

Grouper les commandes[modifier | modifier le wikicode]

Les parenthèses permettent de grouper les commandes, afin par exemple de rediriger leurs sorties de la même manière. Exemple :

(echo Première commande & echo Deuxième commande) > commandes.txt

Caractères spéciaux[modifier | modifier le wikicode]

Certains caractères spéciaux sont interprétés :

  • Le caractère espace sépare les arguments,
  • Les caractères <, >, >>, | servent à rediriger les flux standards de la commande,
  • Les caractères &, && et || servent à l'enchaînement des commandes
  • Le retour à la ligne sépare les commandes.

Certains cas nécessitent leur utilisation sans interprétation (messages, ...). Pour éviter l'interprétation d'un caractère, il faut le faire précéder du caractère accent circonflexe :

echo Des caractères spéciaux : ^< ^> ^& ^| ^^ et un message ^
s'étalant sur 2 lignes mais affiché sur une

Cependant, ceci ne fonctionne pas avec le caractère espace (dans un nom de fichier par exemple). Dans ce cas, il faut utiliser les guillemets :

"C:\Program files\Exemple.exe"

Masquage du retour de commande[modifier | modifier le wikicode]

Dans un script, pour ne pas afficher une commande, tout en conservant le retour, il suffit d'ajouter le caractère @. Pour l'appliquer sur tout le script, il suffit d'utiliser la commande Echo à laquelle il est possible d'ajouter le @ pour ne pas voir la première commande ECHO.

@ECHO OFF

Le @ masque la commande ECHO OFF, et la commande masque toutes les suivantes.

Noms de fichier spéciaux[modifier | modifier le wikicode]

Certains noms de fichier sont réservés aux périphériques systèmes :

NUL
Périphérique nul : toute écriture est absorbée, et la lecture ne retourne rien (vide) ;
CON
Console : clavier et écran ;
CONIN$
Console input : clavier ;
CONOUT$
Console output : écran ;
LPT1
Port parallèle 1 ;
LPT2
Port parallèle 2 ;
COM1
Port série 1 ;
COM2
Port série 2 ;
AUX
Périphérique auxiliaire (en général équivalent à COM1) ;
PRN
Imprimante (en général équivalent à LPT1).

Obtenir de l'aide[modifier | modifier le wikicode]

La plupart des commandes acceptent le paramètre /? pour afficher l'aide sur la commande (rappel de syntaxe, paramètres et options).

Exemple :

for /?

Il est également possible d'utiliser la commande help suivie du nom de la commande à documenter.

Exemple :

help for

Boucle[modifier | modifier le wikicode]

Afficher une séquence :

for %x in (a,b,c) do echo %x

Déplacer des fichiers selon leurs noms :

for %x in (a,b,c) do move c:\myfiles\%x*.doc c:\abcfiles\

Liste alphabétique des commandes[modifier | modifier le wikicode]

Lettre Commandes
A

Append • Arp • Assoc • At • Atmadm • Attrib

B

Bcdedit • Bootcfg • Break

C

Cacl • Cacls • Call • Cd • Chcp • Chdir • Chkdsk • Chkntfs • Choice • Cipher • Cls • Cmd • Cmstp • Color • Command • Comp • Compact • Convert • Copy • Cscript

D

Date • Debug • Defrag • Del • Deltree • Dir • Diskcomp • Diskcopy • Diskpart • Diskperf • Dnscmd • Doskey

E

Echo • Edit • Edlin • Endlocal • Erase • Eventcreate • Eventtriggers • Exe2bin • Exit • Expand

F

Fc • Fdisk • Find • Findstr • Finger • Fixboot • Fixmbr • For • Format • Fsutil • Ftp • Ftype

G

Getmac • Goto • Graftabl

H

Help • Hostname

I

Icacls • If • Ipconfig • Ipv6

J

Jview

K

Keyb • Kill

L

Label • Lpq • Lpr

M

Makecab • Md • Mem • Mkdir • Mklink • Mode • More • Mountvol • Move • Msiexec

N

Nbtstat • Net • ( Net send • Net start • Net stop • Net statistics • Net use) • Netsh • Netstat • Nlsfunc • Nslookup • Ntbackup

P

Path • Pathping • Pause • Pentnt • Ping • Popd • Powershell • Print • Prompt • Pushd

R

Rcp • Rd • Recover • Reg • Regsvr32 • Rem • Ren • Rename • Replace • Rexec • Rmdir • Robocopy • Route • Rsh • Rsm • Runas

S

Sc • Scandisk • Schtasks • Set • Setlocal • Setver • Setx • Sfc • Shift • Shutdown • Sort • Start • Subst • Sys • Systeminfo

T

Taskkill • Tasklist • Tcmsetup • Telnet • Tftp • Time • Timeout • Title • Tlist • Tracert • Tree • Type • Typeperf

V

Ver • Verify • Vol • Vssadmin

W

W32tm • Where • Whoami • Wmic

X

Xcopy

Sommaire[modifier | modifier le wikicode]

  1. Introduction
  2. Append
  3. Arp
  4. Assoc
  5. At
  6. Atmadm
  7. Attrib
  8. Bcdedit
  9. Bootcfg
  10. Break
  11. Cacl
  12. Cacls
  13. Call
  14. Cd
  15. Chcp
  16. Chdir
  17. Chkdsk
  18. Chkntfs
  19. Choice
  20. Cipher
  21. Cls
  22. Cmd
  23. Cmstp
  24. Color
  25. Command
  26. Comp
  27. Compact
  28. Convert
  29. Copy
  30. Cscript
  31. Date
  32. Debug
  33. Defrag
  34. Del
  35. Deltree
  36. Dir
  37. Diskcomp
  38. Diskcopy
  39. Diskpart
  40. Diskperf
  41. Dnscmd
  42. Doskey
  43. Echo
  44. Edit
  45. Edlin
  46. Endlocal
  47. Erase
  48. Eventcreate
  49. Eventtriggers
  50. Exe2bin
  51. Exit
  52. Expand
  53. Fc
  54. Fdisk
  55. Find
  56. Findstr
  57. Finger
  58. Fixboot
  59. Fixmbr
  60. For
  61. Format
  62. Fsutil
  63. Ftp
  64. Ftype
  65. Getmac
  66. Goto
  67. Graftabl
  68. Help
  69. Hostname
  70. Icacls
  71. If
  72. Ipconfig
  73. Ipv6
  74. Jview
  75. Keyb
  76. Kill
  77. Label
  78. Lpq
  79. Lpr
  80. Makecab
  81. Md
  82. Mem
  83. Mkdir
  84. Mklink
  85. Mode
  86. More
  87. Mountvol
  88. Move
  89. Msiexec
  90. Nbtstat
  91. Net
  92. Net send
  93. Net start
  94. Net stop
  95. Net statistics
  96. Net use)
  97. Netsh
  98. Netstat
  99. Nlsfunc
  100. Nslookup
  101. Ntbackup
  102. Path
  103. Pathping
  104. Pause
  105. Pentnt
  106. Ping
  107. Popd
  108. Powershell
  109. Print
  110. Prompt
  111. Pushd
  112. Rcp
  113. Rd
  114. Recover
  115. Reg
  116. Regsvr32
  117. Rem
  118. Ren
  119. Rename
  120. Replace
  121. Rexec
  122. Rmdir
  123. Robocopy
  124. Route
  125. Rsh
  126. Rsm
  127. Runas
  128. Sc
  129. Scandisk
  130. Schtasks
  131. Set
  132. Setlocal
  133. Setver
  134. Setx
  135. Sfc
  136. Shift
  137. Shutdown
  138. Sort
  139. Start
  140. Subst
  141. Sys
  142. Systeminfo
  143. Taskkill
  144. Tasklist
  145. Tcmsetup
  146. Telnet
  147. Tftp
  148. Time
  149. Timeout
  150. Title
  151. Tlist
  152. Tracert
  153. Tree
  154. Type
  155. Typeperf
  156. Ver
  157. Verify
  158. Vol
  159. Vssadmin
  160. W32tm
  161. Where
  162. Whoami
  163. Wmic
  164. Xcopy

Voir aussi[modifier | modifier le wikicode]

Consultez également ces pages dans d’autres projets Wikimedia :

Ressources multimédia sur Commons.
Article encyclopédique sur Wikipédia.
Définition sur Wiktionnaire.