Le DOS sied |
La notion de répertoire est familière à ceux qui ont découvert les systèmes d'exploitation Microsoft avant l'apparition de Windows 95 et de son concept de bureau. Depuis, métaphore oblige, le mot dossier est utilisé à la place de répertoire mais les deux sont complètement synonymes. Tout au moins l'étaient, car à partir de Windows XP le mot dossier peut aussi désigner d'autres objets. C'est le cas notamment des dossiers compressés qui, vus du système d'exploitation, sont des fichiers comme les autres.
Cette regrettable polysémie ne peut que semer la confusion dans les esprits. Ici on emploiera exclusivement le mot répertoire.
Quand on représente graphiquement la structure hiérarchique de tous les répertoires et sous-répertoires d'une unité de stockage, comme le fait l'Explorateur Windows, on obtient l'image d'un arbre dont les feuilles seraient les fichiers et l'on utilise l'expression arborescence des répertoires, l'unité elle-même étant désignée comme la racine.
Pour accéder à un fichier ou à un répertoire il faut indiquer, outre son nom, son chemin d'accès, c'est à dire toute la partie amont de l'arborescence, depuis l'unité jusqu'au sous-répertoire dont il dépend. Exemple :
c:\windows\command\ebd\ebd.cab
On parle ici de chemin d'accès absolu.
Quand elle n'a pas été modifiée par une commande prompt, l'invite de commande se présente sous la forme d'un chemin d'accès suivi du signe supérieur, par exemple : C:\Windows> . Le chemin d'accès indiqué est le répertoire courant. Sans autre précision, fichiers et répertoires seront considérés comme appartenants à cette branche de l'arborescence.
Quand un chemin d'accès se réfère au répertoire courant on parle alors de chemin d'accès relatif. Pour le même fichier que précédemment et avec c:\windows comme répertoire courant on pourrait donc se contenter d'indiquer :
command\edb\edb.cab
On n'est pas obligé d'indiquer le chemin d'accès d'un programme qu'on désire exécuter (.exe, .com ou .bat.) si ce chemin est indiqué dans la variable d'environnement path (chemin en anglais se dit path). Il s'agit d'une variable réservée qui s'initialise ou se modifie avec la commande du même nom : path.
La variable path peut contenir plusieurs chemins, séparés par un point-virgule. Ils sont parcourus dans l'ordre où ils sont indiqués.
Si on lance l'exécution de menu.bat et que la variable path contient
c:\windows;c:\windows\command;c:\deskjet
l'interpréteur de commandes recherche d'abord le programme menu.bat dans le répertoire courant puis dans c:\windows, dans c:\windows\command et enfin dans c:\deskjet.
Sous DOS ou sous Windows 9x la commande path est généralement contenue dans le fichier autoexec.bat mais elle peut être lancée à n'importe quel moment. Le contenu précédent est alors perdu. Pour simplement ajouter un nouveau chemin, on peut passer une commande path de la forme :
path %path%;c:\test\toto
Passée sans paramètres, la commande path affiche les chemins déclarés.
Pour changer de répertoire courant on utilise la commande cd (forme abrégée de chdir pour change directory). Le tableau ci-dessous illustre l'effet de cette commande dans quelques cas.
invite avant commande | commande | invite après commande |
---|---|---|
C:\Windows> | cd temp | C:\Windows\Temp> |
C:\Windows\Temp> | cd \test | C:\Test> |
C:\Test> | a: | A:\> |
A:\> | cd c:\windows\command\ebd | A:\> |
A:\> | c: | C:\Windows\Command\Ebd> |
La commande cd peut s'appliquer sur une unité différente de l'unité courante mais dans ce cas l'invite n'est pas modifiée. Pour aller sur le répertoire courant d'une autre unité il faut demander un changement d'unité en entrant simplement la lettre de cette unité et les deux points.
La commande cd peut aussi être utilisé avec le paramètre symbolique .. (double point) pour remonter d'une manière très simple au répertoire parent. Avec un troisième point on remonte au grand-parent et ainsi de suite. Voici quelques exemples :
invite avant commande | commande | invite après commande |
---|---|---|
C:\Windows\System32> | cd .. | C:\Windows> |
C:\Windows\System> | cd ... | C:\> |
C:\Windows\Inf\Qfe> | cd ... | C:\Windows> |
Pour connaître le contenu d'un répertoire, on utilise la commande dir (directory). Cette commande accepte des paramètres et de nombreux commutateurs (voir chapitre sur l'aide en ligne pour les commandes). Le plus précieux de ces commutateurs est sûrement /p (pour page) qui permet d'afficher page par page le contenu du répertoire.
dir /p
Sans spécifier de paramètre c'est le contenu du répertoire courant qui est affiché du DOS. Si l'invite est : C:\Windows> , on voit le contenu de c:\windows. Pour obtenir le contenu d'un autre répertoire il faut préciser le répertoire cible en paramètre, précédé par son chemin d'accès relatif ou absolu. Exemples :
invite avant et après commande | répertoire cible | commande |
---|---|---|
C:\Windows> | c:\windows\temp> | dir temp |
C:\Windows> | c:\test> | dir \test |
C:\Windows> | c:\ | dir \ |
C:\Windows> | a:\ | dir a: |
C:\Windows> | a:\ebd | dir a:\ebd |
On peut souhaiter n'afficher qu'une partie d'un répertoire, par exemple uniquement les fichiers dont le nom commence par ms, quelle que soit leur extension. On utilise pour cela un caractère joker, l'astérisque en l'occurrence. On entre alors :
dir ms*.*
Pour obtenir la liste des fichiers .bat contenus dans la racine de c: la commande devient :
dir \*.bat
On le voit, ce caractère joker remplace tous ceux qui le suivent. On peut aussi utiliser le point d'interrogation comme caractère joker, qui ne remplace que le caractère occupant sa position. Les deux caractères joker peuvent bien sûr être combinés.
dir ?y*.*
Cette commande liste les fichiers dont le nom comporte un y en deuxième position, quelle que soit leur extension.
Par défaut la commande dir ne porte que sur les seuls fichiers contenus directement dans le répertoire courant, le contenu des éventuels sous-répertoires n'est pas pris en compte. Pour étendre la portée de la commande dir au contenu des sous-répertoires, il faut lui adjoindre le commutateur /s (pour sub-directory). Autre option par défaut, les fichiers systèmes et les fichiers cachés ne sont pas listés. Pour les faire afficher, il faut utiliser le commutateur /a (pour attribut).
Exemple d'application, pour lister toutes les occurrences du fichier msdos.sys dans tous les répertoires et sous-répertoires de l'unité c: la commande dir s'écrit :
dir c:\msdos.sys /a /s /p
Afin d'éviter d'avoir à ressaisir les commutateurs que l'on utilise systématiquement, on peut modifier les options par défaut de la commande dir à l'aide de la variable d'environnement dircmd. Exemple :
set dircmd=/p /o /l /a
Sans indication complémentaire la commande dir affichera page par page (/p) et en minuscules (/l) d'abord la liste des sous-répertoires puis celle des fichiers avec leurs attributs (/a), chacune triée par ordre alphabétique (/o). On remarquera que l'ordre des commutateurs a été choisi pour former une séquence facile à mémoriser.
Pour créer un nouveau répertoire on utilise la commande md (abrégé de mkdir pour make directory). Sauf indication d'un chemin spécifique, le répertoire est crée en tant que sous-répertoire du répertoire courant (en tant que répertoire principal si l'on pointe sur la racine). Le répertoire courant n'est pas modifié. Mieux qu'un long discours le tableau ci-dessous illustre le comportement de la commande md par quelques exemples.
invite avant et après commande | répertoire à créer | commande |
---|---|---|
C:\Test> | c:\test\toto | md toto |
C:\Test> | c:\toto | md \toto |
C:\Test> | a:\toto | md a:\toto |
Pour supprimer un répertoire on utilise la commande rd (abrégé de rmdir pour remove directory). Comme pour les commandes précédentes, sans indication spécifique, le chemin est déterminé par rapport au répertoire courant.
Pour qu'un répertoire puisse être supprimé à l'aide de la commande rd, il ne doit plus contenir aucun fichier ni aucun sous-répertoire.
invite avant et après commande | répertoire à supprimer | commande |
---|---|---|
C:\Test> | c:\test\toto | rd toto |
C:\Test> | c:\toto | rd \toto |
C:\Test> | a:\toto | rd a:\toto |
Pour supprimer un répertoire, les fichiers qu'il contient et toute l'arborescence qui en dépend, on utilise la commande deltree (pour delete tree, pas de forme abrégée). Bien que le chemin d'accès au répertoire cible puisse être déterminé relativement au répertoire courant il est préférable, afin d'éviter une erreur qui pourrait se révéler désastreuse, d'indiquer un chemin absolu.
Pour supprimer c:\test, c:\test\toto et l'intégralité des fichiers contenus aussi bien dans c:\test que dans c:\test\toto, il suffit de passer la commande :
deltree c:\test
Dans les fichiers de commandes on utilise souvent le commutateur /y afin de supprimer la demande de confirmation.