« DOS » : différence entre les versions

Contenu supprimé Contenu ajouté
m Révocation des modifications de 176.135.148.216 (discussion) vers la dernière version de JackBot
Balise : Révocation
Contenu remplacé par « thumb|Invite de commande MS-DOS. {{version imprimable}} {{/Introduction}} == Sommaire == {{/Sommaire}} == Voir aussi == {{Autres p… »
Balise : Contenu remplacé
Ligne 2 :
{{version imprimable}}
 
{{/Introduction}}
Le [[w:DOS|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 [[w:International Business Machines Corporation|IBM]] pour équiper ses tout premiers [[w:IBM PC|PC]] (''Personal Computer''), et a ensuite été présent sur la plupart des « compatibles » ; il n'est maintenant plus maintenu. Un concurrent a été [[w:DR-DOS|DR-DOS]], racheté et renommé plusieurs fois et finalement abandonné. Actuellement il existe [[w:FreeDOS|FreeDOS]], un DOS gratuit et ''open-source''.
 
== Sommaire ==
Les différentes versions de [[w:Windows|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 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.
{{/Sommaire}}
 
Les commandes permettent la manipulation de fichiers et de répertoires, l'exécution d'applications, et l'exécution de scripts de [[w:traitement par lots|traitement par lots]] (fichiers ''batch'').
 
== Syntaxe des commandes ==
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 ==
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 ===
Un fichier contient des données. Un répertoire contient des fichiers et d'autres répertoires.
 
=== La syntaxe générale ===
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 :
<source lang="dos">
c:\Dos\command.com
C:\dos\command.COM
C:\DOS\Command.Com
C:\dOs\CoMmAnD.CoM
</source>
 
=== Les lettres de lecteur ===
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 :
<source lang="dos">
C:\DOS> a:
A:\> c:
C:\DOS>
</source>
 
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 ===
Deux répertoires spéciaux sont définis dans chaque répertoire du système de fichiers :
* le répertoire courant nommé <code> . </code> désigne le répertoire lui-même,
* le répertoire parent nommé <code> .. </code> désigne le répertoire contenant celui-ci.
 
C'est à dire que les chemins suivants désignent le même répertoire :
<source lang="dos">
C:\Windows
C:\Windows\.
C:\Windows\System\..
C:\Windows\.\System\..
C:\Windows\.\.\System\..\.
</source>
 
=== Le répertoire contextuel courant ===
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 [[DOS/Cd|Chdir]] (ou [[DOS/Cd|Cd]]). Certaines versions fournissent également les commandes [[DOS/Pushd|Pushd]] et [[DOS/Popd|Popd]].
 
Exemples :
<source lang="dos">
C:\> cd dos
C:\DOS> cd ..
C:\> cd a:\drivers
C:\> a:
A:\DRIVERS>
</source>
 
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 ==
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 :
* <code>&lt;</code> pour lire les données depuis un fichier au lieu du clavier,
* <code>&gt;</code> pour enregistrer la sortie de la commande dans un nouveau fichier au lieu de l'afficher à l'écran,
* <code>&gt;&gt;</code> pour enregistrer la sortie de la commande à la fin d'un fichier existant au lieu de l'afficher à l'écran.
 
Exemples :
<source lang="dos">
date < input1.txt > output.txt
time < input2.txt >> output.txt
</source>
 
Il est possible de faire précéder le signe &gt; 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 :
<source lang="dos">
date < input1.txt 1> output.txt 2> error.txt
</source>
 
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 & :
<source lang="dos">
date < input1.txt 1> output_and_error.txt 2>&1
</source>
 
Enfin, il est possible de rediriger une commande vers NUL au lieu d'un fichier pour simplement masquer l'affichage de la commande :
<source lang="dos">
DATE > NUL
</source>
 
== Enchaîner les commandes ==
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.<br/>Exemple :
<source lang="dos">
copy D:\a.txt C:\ & delete D:\a.txt
</source>
* &amp;&amp; pour enchaîner les commandes seulement si la commande qui précède ne retourne pas d'erreur.<br/>Exemple :
<source lang="dos">
copy D:\a.txt C:\ && delete D:\a.txt
</source>
* || pour enchaîner les commandes seulement si la commande qui précède retourne une erreur.<br/>Exemple :
<source lang="dos">
copy D:\a.txt C:\ || copy E:\a.txt C:\
</source>
 
== Grouper les commandes ==
Les parenthèses permettent de grouper les commandes, afin par exemple de rediriger leurs sorties de la même manière. Exemple :
<source lang="dos">
(echo Première commande & echo Deuxième commande) > commandes.txt
</source>
 
== Caractères spéciaux ==
Certains caractères spéciaux sont interprétés :
* Le caractère espace sépare les arguments,
* Les caractères &lt;, &gt;, &gt;&gt;, | servent à rediriger les flux standards de la commande,
* Les caractères &amp;, &amp;&amp; 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 :
<source lang="dos">
echo Des caractères spéciaux : ^< ^> ^& ^| ^^ et un message ^
s'étalant sur 2 lignes mais affiché sur une
</source>
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 :
<source lang="dos">
"C:\Program files\Exemple.exe"
</source>
 
== Masquage du retour de commande ==
Dans un script, pour ne pas afficher une commande, tout en conservant le retour, il suffit d'ajouter le caractère <code>@</code>.
Pour l'appliquer sur tout le script, il suffit d'utiliser la commande [[DOS/Echo|Echo]] à laquelle il est possible d'ajouter le @ pour ne pas voir la première commande ECHO.
<source lang="dos">
@ECHO OFF
</source>
Le @ masque la commande ECHO OFF, et la commande masque toutes les suivantes.
 
== Noms de fichier spéciaux ==
Certains noms de fichier sont réservés aux périphériques systèmes :
;<code>NUL</code>:Périphérique nul : toute écriture est absorbée, et la lecture ne retourne rien (vide) ;
;<code>CON</code>:Console : clavier et écran ;
;<code>CONIN$</code>:Console ''input'' : clavier ;
;<code>CONOUT$</code>:Console ''output'' : écran ;
;<code>LPT1</code>:Port parallèle 1 ;
;<code>LPT2</code>:Port parallèle 2 ;
;<code>COM1</code>:Port série 1 ;
;<code>COM2</code>:Port série 2 ;
;<code>AUX</code>:Périphérique auxiliaire (en général équivalent à COM1) ;
;<code>PRN</code>:Imprimante (en général équivalent à LPT1).
 
== Obtenir de l'aide ==
La plupart des commandes acceptent le paramètre <code>/?</code> pour afficher l'aide sur la commande (rappel de syntaxe, paramètres et options).
 
Exemple :
<source lang="dos">
for /?
</source>
 
Il est également possible d'utiliser la commande <code>help</code> suivie du nom de la commande à documenter.
 
Exemple :
<source lang="dos">
help for
</source>
 
== Boucle ==
Afficher une séquence :
<source lang="dos">
for %x in (a,b,c) do echo %x
</source>
 
Déplacer des fichiers selon leurs noms :
<source lang="dos">
for %x in (a,b,c) do move c:\myfiles\%x*.doc c:\abcfiles\
</source>
 
== Liste des commandes ==
 
{| class="wikitable"
!Lettre !! [[DOS/Liste des commandes|Commandes]]
|-
! '''A'''
|
[[DOS/Append|Append]]&nbsp;•
[[DOS/Arp|Arp]]&nbsp;•
[[DOS/Assoc|Assoc]]&nbsp;•
[[DOS/At|At]]&nbsp;•
[[DOS/Atmadm|Atmadm]]&nbsp;•
[[DOS/Attrib|Attrib]]
|-
! '''B'''
|
[[DOS/Bcdedit|Bcdedit]]&nbsp;•
[[DOS/Bootcfg|Bootcfg]]&nbsp;•
[[DOS/Break|Break]]
|-
! '''C'''
|
[[DOS/Cacl|Cacl]]&nbsp;•
[[DOS/Cacls|Cacls]]&nbsp;•
[[DOS/Call|Call]]&nbsp;•
[[DOS/Cd|Cd]]&nbsp;•
[[DOS/Chcp|Chcp]]&nbsp;•
[[DOS/Cd|Chdir]]&nbsp;•
[[DOS/Chkdsk|Chkdsk]]&nbsp;•
[[DOS/Chkntfs|Chkntfs]]&nbsp;•
[[DOS/Choice|Choice]]&nbsp;•
[[DOS/Cipher|Cipher]]&nbsp;•
[[DOS/Cls|Cls]]&nbsp;•
[[DOS/Cmd|Cmd]]&nbsp;•
[[DOS/Cmstp|Cmstp]]&nbsp;•
[[DOS/Color|Color]]&nbsp;•
[[DOS/Command|Command]]&nbsp;•
[[DOS/Comp|Comp]]&nbsp;•
[[DOS/Compact|Compact]]&nbsp;•
[[DOS/Convert|Convert]]&nbsp;•
[[DOS/Copy|Copy]]&nbsp;•
[[DOS/Cscript|Cscript]]
|-
! '''D'''
|
[[DOS/Date|Date]]&nbsp;•
[[DOS/Debug|Debug]]&nbsp;•
[[DOS/Defrag|Defrag]]&nbsp;•
[[DOS/Del|Del]]&nbsp;•
[[DOS/Deltree|Deltree]]&nbsp;•
[[DOS/Dir|Dir]]&nbsp;•
[[DOS/Diskcomp|Diskcomp]]&nbsp;•
[[DOS/Diskcopy|Diskcopy]]&nbsp;•
[[DOS/Diskpart|Diskpart]]&nbsp;•
[[DOS/Diskperf|Diskperf]]&nbsp;•
[[DOS/Dnscmd|Dnscmd]]&nbsp;•
[[DOS/Doskey|Doskey]]
|-
! '''E'''
|
[[DOS/Echo|Echo]]&nbsp;•
[[DOS/Edit|Edit]]&nbsp;•
[[DOS/Edlin|Edlin]]&nbsp;•
[[DOS/Endlocal|Endlocal]]&nbsp;•
[[DOS/Del|Erase]]&nbsp;•
[[DOS/Eventcreate|Eventcreate]]&nbsp;•
[[DOS/Eventtriggers|Eventtriggers]]&nbsp;•
[[DOS/Exe2bin|Exe2bin]]&nbsp;•
[[DOS/Exit|Exit]]&nbsp;•
[[DOS/Expand|Expand]]
|-
! '''F'''
|
[[DOS/Fc|Fc]]&nbsp;•
[[DOS/Fdisk|Fdisk]]&nbsp;•
[[DOS/Find|Find]]&nbsp;•
[[DOS/Findstr|Findstr]]&nbsp;•
[[DOS/Finger|Finger]]&nbsp;•
[[DOS/Fixboot|Fixboot]]&nbsp;•
[[DOS/Fixmbr|Fixmbr]]&nbsp;•
[[DOS/For|For]]&nbsp;•
[[DOS/Format|Format]]&nbsp;•
[[DOS/Fsutil|Fsutil]]&nbsp;•
[[DOS/Ftp|Ftp]]&nbsp;•
[[DOS/Ftype|Ftype]]
|-
! '''G'''
|
[[DOS/Getmac|Getmac]]&nbsp;•
[[DOS/Goto|Goto]]&nbsp;•
[[DOS/Graftabl|Graftabl]]
|-
! '''H'''
|
[[DOS/Help|Help]]&nbsp;•
[[DOS/Hostname|Hostname]]
|-
! '''I'''
|
[[DOS/Icacls|Icacls]]&nbsp;•
[[DOS/If|If]]&nbsp;•
[[DOS/Ipconfig|Ipconfig]]&nbsp;•
[[DOS/Ipv6|Ipv6]]
|-
! '''J'''
|
[[DOS/Jview|Jview]]
|-
! '''K'''
|
[[DOS/Keyb|Keyb]]&nbsp;•
[[DOS/Kill|Kill]]
|-
! '''L'''
|
[[DOS/Label|Label]]&nbsp;•
[[DOS/Lpq|Lpq]]&nbsp;•
[[DOS/Lpr|Lpr]]
|-
! '''M'''
|
[[DOS/Makecab|Makecab]]&nbsp;•
[[DOS/Mkdir|Md]]&nbsp;•
[[DOS/Mem|Mem]]&nbsp;•
[[DOS/Mkdir|Mkdir]]&nbsp;•
[[DOS/Mklink|Mklink]]&nbsp;•
[[DOS/Mode|Mode]]&nbsp;•
[[DOS/More|More]]&nbsp;•
[[DOS/Mountvol|Mountvol]]&nbsp;•
[[DOS/Move|Move]]&nbsp;•
[[DOS/Msiexec|Msiexec]]
|-
! '''N'''
|
[[DOS/Nbtstat|Nbtstat]]&nbsp;•
[[DOS/Net|Net]]&nbsp;•
(<small>
[[DOS/Net#Net send|Net send]]&nbsp;•
[[DOS/Net#Net start|Net start]]&nbsp;•
[[DOS/Net#Net stop|Net stop]]&nbsp;•
[[DOS/Net#Net stop|Net statistics]]&nbsp;•
[[DOS/Net#Net use|Net use]]</small>)&nbsp;•
[[DOS/Netsh|Netsh]]&nbsp;•
[[DOS/Netstat|Netstat]]&nbsp;•
[[DOS/Nlsfunc|Nlsfunc]]&nbsp;•
[[DOS/Nslookup|Nslookup]]&nbsp;•
[[DOS/Ntbackup|Ntbackup]]
|-
! '''P'''
|
[[DOS/Path|Path]]&nbsp;•
[[DOS/Pathping|Pathping]]&nbsp;•
[[DOS/Pause|Pause]]&nbsp;•
[[DOS/Pentnt|Pentnt]]&nbsp;•
[[DOS/Ping|Ping]]&nbsp;•
[[DOS/Popd|Popd]]&nbsp;•
[[DOS/Powershell|Powershell]]&nbsp;•
[[DOS/Print|Print]]&nbsp;•
[[DOS/Prompt|Prompt]]&nbsp;•
[[DOS/Pushd|Pushd]]
|-
! '''R'''
|
[[DOS/Rcp|Rcp]]&nbsp;•
[[DOS/Rmdir|Rd]]&nbsp;•
[[DOS/Recover|Recover]]&nbsp;•
[[DOS/Reg|Reg]]&nbsp;•
[[DOS/Regsvr32|Regsvr32]]&nbsp;•
[[DOS/Rem|Rem]]&nbsp;•
[[DOS/Ren|Ren]]&nbsp;•
[[DOS/Rename|Rename]]&nbsp;•
[[DOS/Replace|Replace]]&nbsp;•
[[DOS/Rexec|Rexec]]&nbsp;•
[[DOS/Rmdir|Rmdir]]&nbsp;•
[[DOS/Robocopy|Robocopy]]&nbsp;•
[[DOS/Route|Route]]&nbsp;•
[[DOS/Rsh|Rsh]]&nbsp;•
[[DOS/Rsm|Rsm]]&nbsp;•
[[DOS/Runas|Runas]]
|-
! '''S'''
|
[[DOS/Sc|Sc]]&nbsp;•
[[DOS/Scandisk|Scandisk]]&nbsp;•
[[DOS/Schtasks|Schtasks]]&nbsp;•
[[DOS/Set|Set]]&nbsp;•
[[DOS/Setlocal|Setlocal]]&nbsp;•
[[DOS/Setver|Setver]]&nbsp;•
[[DOS/Setx|Setx]]&nbsp;•
[[DOS/Sfc|Sfc]]&nbsp;•
[[DOS/Shift|Shift]]&nbsp;•
[[DOS/Shutdown|Shutdown]]&nbsp;•
[[DOS/Sort|Sort]]&nbsp;•
[[DOS/Start|Start]]&nbsp;•
[[DOS/Subst|Subst]]&nbsp;•
[[DOS/Sys|Sys]]&nbsp;•
[[DOS/Systeminfo|Systeminfo]]
|-
! '''T'''
|
[[DOS/Taskkill|Taskkill]]&nbsp;•
[[DOS/Tasklist|Tasklist]]&nbsp;•
[[DOS/Tcmsetup|Tcmsetup]]&nbsp;•
[[DOS/Telnet|Telnet]]&nbsp;•
[[DOS/Tftp|Tftp]]&nbsp;•
[[DOS/Time|Time]]&nbsp;•
[[DOS/Timeout|Timeout]]&nbsp;•
[[DOS/Title|Title]]&nbsp;•
[[DOS/Tlist|Tlist]]&nbsp;•
[[DOS/Tracert|Tracert]]&nbsp;•
[[DOS/Tree|Tree]]&nbsp;•
[[DOS/Type|Type]]&nbsp;•
[[DOS/Typeperf|Typeperf]]
|-
! '''V'''
|
[[DOS/Ver|Ver]]&nbsp;•
[[DOS/Verify|Verify]]&nbsp;•
[[DOS/Vol|Vol]]&nbsp;•
[[DOS/Vssadmin|Vssadmin]]
|-
! '''W'''
|
[[DOS/W32tm|W32tm]]&nbsp;•
[[DOS/Where|Where]]&nbsp;•
[[DOS/Whoami|Whoami]]&nbsp;•
[[DOS/Wmic|Wmic]]
|-
! '''X'''
|
[[DOS/Xcopy|Xcopy]]
|}
 
== Voir aussi ==
Récupérée de « https://fr.wikibooks.org/wiki/DOS »