DOS/Introduction

Un livre de Wikilivres.
< DOS
Commandes DOS


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