Navigation

...

... quelqu'un a cliqué sur le lien vers le premier chapitre, j'en reviens pas

!!! YEEHAAA

!
Eh bah alors, mais ça alors, si je m'y attendais, mais là alors, C'EEEESST PARTIIII, on va apprendre le premier truc à savoir pour pouvoir se servir correctement d'un OS : la
navigation dans celui-ci.
M'alors, kesske t'attends moussaillon ?
LARGUE LES AMARRES, NOMDIDIOU !!
Avant toute chose : lancer "l'invite de commandes"

Hum... bien, bel enthousiasme... mais

comment on le lance, DOS ? Et puis d'abord, quel intérêt de l'apprendre ?
Ah... le DOS ! À quoi il sert ? Pour vous répondre franchement : à pas grand-chose, et à encore moins depuis qu'il n'est plus une sous-couche de Windows

.
Malgré tout, il peut être utile dans certains cas :
- certaines commandes DOS se retrouvent dans des langages de programmation actuels, ou en tout cas il existe des sortes de "ponts" avec le DOS, particulièrement dans tout ce qui est console : console en C, sous Linux etc. ;
- rien qu'à voir on ne peut pas dire qu'il ait totalement disparu
;
- "culturellement", c'est toujours intéressant de voir comment marchaient les machines avant... ;
- certaines caractéristiques du DOS se retrouvent sous Windows, d'où, parfois (mais bien rarement
), une meilleure compréhension de son PC ;
- dans certains cas, le DOS permet de faire des choses dont Windows est incapable, du moins aussi rapidement et / ou précisément ;
- c'est pas LA Classe
de pouvoir déclarer "Le DOS ? Pfiou
, je maîtrise !" (non, non, ce n'est pas ironique
).
Allez, en bonus, je vous donne une ligne d'histoire

.
Tout commença lorsqu'
IBM voulu lancer le
PC (
Personal Computer). Celui-ci devant avoir un
OS (
Operating System =
système d'exploitation), IBM appelle
Microsoft pour qu'elle lui en concocte un.
PC-DOS, qui prendra ensuite le nom de
MS-DOS (
Microsoft Disk Operating System), était né et le 26 août 1981, ce fameux PC arrivait sur le marché.
Et pour le lancement de cet OS, quoique vous le sachiez peut-être, il était bon de le rappeler
Pour lancer DOS, il y a plusieurs solutions.
Si vous disposez d'un ordinateur encore capable de le faire, vous pouvez toujours
redémarrer en mode MS-DOS. Avantage : vous serez en plein dedans, inconvénient : vous n'aurez pas de fenêtre internet avec ce cours devant vous... Je ne vous recommande donc pas cette méthode

.
Sinon, l'idéal est de lancer
l'invite de commandes (
command prompt en anglais). D'ailleurs, tout au long de ce cours, je vais vous demander une chose : toujours l'avoir ouverte sous les yeux pour tester par vous-mêmes tout ce que je vous indiquerai : il n'y a pas de meilleur moyen pour apprendre quoi que ce soit que de pratiquer par soi-même. Pour le lancer, vous avez deux solutions :
-
démarrer >
Programmes >
Accessoires >
Invite de Commandes ;
- ou
démarrer >
Exécuter... (raccourci clavier : touche
Windows +
R), une fenêtre comme celle ci-dessous s'affiche ; entrez
cmd et tapez
Entrée (ou cliquez sur
OK) et c'est bon.
Dans tous les cas, vous aurez...
cd : changer de répertoire
... votre fenêtre DOS, toute noire, avec un peu de texte, devant vos yeux médusés par tant de splendeur.
Question :
Que remarquez-vous ?
Après une ou deux lignes de copyright, vous voyez écrit juste en dessous quelque chose comme ceci :
Cette ligne peut ne pas être la même chez vous, ne vous inquiétez pas pour ça.
DOS vous a indiqué l'endroit où vous vous trouvez : dans l'exemple, vous êtes dans le dossier
Bidule qui est sous-dossier du dossier
Machin, lui-même sous-dossier du dossier
Truc se trouvant dans le dossier
Dossier sur le disque C (enfin, là, je ne crois pas vous avoir appris grand-chose

). Ce
chemin d'accès se termine par >. Le "tiret du bas" (qui s'appelle
underscore) qui clignote est en fait votre curseur (comme la barre verticale clignotante sous un traitement de texte).
Accélérons maintenant le pas : nous allons REVENIR dans le dossier parent : donc, dans
Machin.
D'abord... eh bien... l'icône très pratique du dossier parent

n'existe pas ! En effet, sous DOS, tout se tape au clavier, y a pas de souris ! Donc ce sera un peu plus compliqué : il vous faudra utiliser une
commande bien pratique :
cd (en anglais,
change directory, changer de répertoire).
Pour revenir un dossier en arrière, tapez tout simplement :
Code : Console
Soit
cd suivi de deux points.
Et vous vous retrouvez dans le dossier parent

(ici
Machin) !
Ainsi, si vous voulez revenir à la
racine du disque (c'est-à-dire à "C:\"), vous pouvez taper, jusqu'à y arriver, la commande
cd..
Eh, mais c'est pas un peu répétitif, ça ??
Si, un peu

. Mais il y a un raccourci !
Pour exécuter la même commande qu'auparavant, appuyez sur la touche
flèche droite ou sur
F1, tous les caractères de la commande précédente s'afficheront un à un. Vous n'avez plus qu'à appuyer sur
Entrée au bon moment et voilà

!

Ah oui, ok, mais si on n'a pas la patience d'attendre que tous les caractères s'affichent un par un ? Oui, bon, pour là, ça va, ce n'est pas long, mais imaginons que notre commande fasse 20 caractères...
Oui, il y a encore un autre raccourci :
F3 permet d'afficher tous les caractères de la commande précédente d'un coup (en bref, d'utiliser la même commande rien qu'en appuyant sur
Entrée juste après

).
Tiens mais, je me disais... pour revenir à la racine du disque, on pourrait pas tout simplement entrer cd c:\ ?
C'est vrai

. Mais, sous DOS, la racine du disque porte aussi un nom : \. Ainsi :
Code : Console
Tapez bien cd \ pour revenir directement à la racine : un cd / vous renverra au dossier courant.
... aura le même effet que (
si vous vous trouvez sur le disque C:) :
Code : Console
Enfin, je préfère en général la première version

.

Merci beaucoup pour tout ça, mais je commence à me demander un truc : c'est pas en restant sur la racine ou en revenant perpétuellement en arrière que je vais aller quelque part, moi !! Comment on fait pour ENTRER dans un dossier ?
J'allais y venir

; pour entrer dans un dossier, il vous suffit de taper :
Code : Console
Ne pas oublier l'espace ici : si vous ne l'entrez pas (
cdLeNomDuDossier), DOS ne reconnaîtra pas votre commande (bah oui... pour lui, la commande sera
cdLeNomDuDossier, commande qu'il ne connaît pas...) et vous aurez droit à un message d'erreur

. Il en va de même avec les autres commandes : toujours les séparer du reste à l'aide d'un espace.
Et vu que je me trouve en ce moment sur la racine du disque, si je veux entrer dans
Dossier, il suffit que je tape :
Code : Console
Il se peut, si vous avez une version plus ancienne de DOS, qu'il vous faille mettre des guillemets autour de votre nom de dossier si celui-ci contient des espaces (ex. : cd "mes documents").
Oui ? Qu'est-ce qui ne va pas ? J'ai dit quelque chose ?
Donc en fait, on marche à l'aveuglette et on doit connaître par coeur le nom de tous nos dossiers et sous-dossiers pour y entrer

??
Rassurez-vous, chers Zér0s : bien que cette méthode soit aussi une solution (quoique pour le moins radicale

), il existe une autre commande bien pratique qui peut remplacer cet effort mental :
dir.
dir, pour ne pas avoir à tout mémoriser
Votre sauveur a cette apparence-là :
Code : Console
Tout simplement

.
Lorsque vous entrez cette commande, tout ce qui se trouve dans le dossier où vous vous trouvez sera affiché à l'écran. On va étudier plus en détail ce que signifie tout ce qui s'affiche, et pour ça, rien de tel qu'une bonne petite image

.
D'abord (1) deux lignes, qui ne nous intéressent pas tellement, indiquant le nom du volume du disque actuel ainsi que son numéro de série.
Ensuite (2) le chemin d'accès du dossier scanné.
Tout en bas (3) deux autres lignes, déjà plus intéressantes : l'une indique le nombre de fichiers dans le dossier courant ainsi que la place totale qu'ils occupent (pour convertir : 1000 octet = 1
Kilo-octet (Ko) ; 1000 Ko = 1
Méga-octet (Mo) ; 1000 Mo = 1
Giga-octet (Go) etc.), l'autre, le nombre de sous-dossiers du dossier courant ainsi que la place restée libre sur le disque dur.
Une liste (4) indiquant tout ce qui se trouve dans le dossier. On va s'y intéresser de plus près.
À gauche (a), la date et l'heure de la dernière modification du dossier ou fichier se trouvant sur cette ligne.
À droite (b), le nom du fichier ou dossier.
Au centre (c), deux cas :
- la ligne se réfère à un fichier : on a la place qu'il occupe, en octets ;
- la ligne se réfère à un dossier : il est inscrit <REP> (ou <DIR> en anglais), ce qui veut dire répertoire, un autre nom pour "dossier".
En tapant donc
dir dans un dossier, vous connaissez, avec les fichiers, le nom de tous les sous-dossiers présents à l'intérieur, ce qui vous permet ensuite d'entrer le fameux
cd LeNomDuDossier sans problème

.

Pas bête... mais, on devra alterner les
cd et les
dir à chaque fois ? Y aurait pas un raccourci pour faire apparaître directement la commande précédant la précédente ?
Oui, il y en a un

.
Appuyez sur les touches
flèche haut et
flèche bas. Et

les commandes que vous avez tapées précédemment s'afficheront. Plus vous appuyez sur la flèche du haut, plus vous remontez le temps et plus vous appuyez sur la flèche du bas, plus vous vous rapprochez du présent... magique

.
Nota : ça m'étonnerait que cette histoire de flèche du haut et flèche du bas existait avant les versions récentes de DOS... il se peut donc que cela ne marche pas sur votre machine si celle-ci est plus ancienne...
Tiens, au fait, j'avais oublié de préciser : avec
cd, vous pouvez aussi entrer dans le dossier dans lequel vous voulez aller :
Code : Console
Et vous vous retrouverez d'un coup dans
sousDossier 
.
Il existe deux types de chemins d'accès : les chemins d'accès relatifs, les plus utilisés, qui tiennent compte du dossier courant ; ceux-ci commencent par le dossier dans lequel vous souhaitez aller, sans rien devant (exemple : cd dossier\sousDossier\etc.), sous-entendu, dossier se trouvant dans le dossier actuel, et les chemins d'accès absolus, moins courants, qui partent de la racine d'un disque ; ceux-ci commencent par Disque:\ et ne tiennent pas compte du dossier actuel, exemple : cd C:\Dossier\sousDossier\etc.. "\" est quant à lui un chemin relatif, car il part du dossier courant sans changer de disque, même si on peut le considérer parfois comme chemin absolu.
Maintenant, si l'on suit l'exemple, comme on se trouve dans le dossier
Dossier, si l'on veut aller directement dans le dossier
Machin, on peut sans problème entrer :
Code : Console
et on aura :
Oui, d'accord, c'est bien tout ça... mais comment fait-on pour entrer directement dans un sous-dossier si dir n'indique que ce qu'il y a dans le dossier courant ?
Détrompez-vous, honorables Zéros !
dir ne nous a pas encore montré tout ce dont il était capable

.
Les commutateurs

Ouh là, c'est quoi, ce truc barbare ? Et c'est quoi le rapport avec ma question ?
Vous inquiétez pas : les
commutateurs (ou
switchs en anglais), c'est
capital, mais très facile à saisir

. Quant au rapport... on ne peut faire plus rapporté

.
Un commutateur, c'est, en gros, comme une option à rajouter à votre commande : elle fera la même chose, avec plus ou moins de différences. Il se compose de deux choses : un slash / suivi
en général d'un seul caractère.
Concrètement :
Code : Console
Et comme il complète une commande, ça donne :
Code : Console
| |
commande /caractereDuCommutateur
|
Ah ok... et pour répondre à ma question ?
Pour répondre à votre question, tapez dans votre invite de commandes :
Code : Console
Et là

...
Note : commande ayant provoquée ceci : dir /s lancée depuis C:\Dossier ; j'ai coupé les deux lignes du haut, pas très intéressantes.
Vous avez votre commande
dir qui fait son boulot : pareil, vous avez le nom du disque ainsi que son numéro de série ; pareil, vous avez la date, l'heure, les noms des fichiers et des dossiers. Différence due au commutateur
/s :
dir fait ensuite pareil pour
TOUS les sous-dossiers contenus dans le dossier scanné.
Pour chaque dossier scanné : le chemin d'accès du dossier suivi de la fameuse liste et pour chacun, un sous-total du nombre et de la taille totale des fichiers présents, mais pas des dossiers (normal :
dir s'en occupera juste après).
À la fin, le grand total : nombre total et place totale des fichiers trouvés dans tous les dossiers, et nombre total de dossiers et sous-dossiers. Attention : le nombre total de dossiers est compté en terme de dossiers contenus dans le chemin d'accès (en bref :
C:\Dossier\Autre Dossier compte pour 3 : un pour
C:\, un pour
Dossier, un pour
Autre Dossier... vous ne croyiez quand même pas qu'il y avait vraiment 20 sous-dossiers en tout pour si peu de texte, si

?).
Eh ! D'ailleurs, pour tester : allez dans un dossier contenant beaucoup, beaucoup de sous-dossiers et de fichiers (la racine de votre disque dur fera certainement l'affaire...) et lancez cette commande (
dir /s).
Que remarquez-vous ?

Pfiouuu, c'est sacrément long, dis-moi ! Comment fait-on si l'on n'a pas la patience d'attendre que ça se termine tout seul ?
Pour répondre à votre question : appuyez sur
Ctrl + C, le processus en cours sera interrompu. C'est aussi le cas pour toutes les autres commandes : vous en avez assez d'attendre ? Ctrl + C, et c'est terminé

!
Pour élargir un peu : imaginons un instant que vous vouliez voir tout ce qui défile... le problème, cette fois-ci, est que ça défile tellement vite que vous êtes tout simplement incapable de tout lire ! Évidemment, vous pouvez décider, une fois la commande effectuée, de remonter tout en haut en utilisant "l'ascenseur" à droite de votre fenêtre, mais il existe une autre solution : le commutateur
/p (rappelons d'ailleurs que ledit ascenseur n'existait pas avant l'apparition de Windows...).
Vous pouvez donc écrire :
Code : Console
Et, lorsque toute la fenêtre sera remplie de texte, votre commande
dir fera afficher gentiment... :
... vous laissant ainsi le temps de lire tranquillement puis d'appuyer sur une touche pour voir la suite.
Waw ! Pas mal... mais, avec seulement un dir qui ne regarde pas dans les sous-dossiers, il y a plutôt peu de chances que l'on rencontre ce problème, non ?
C'est vrai

, enfin, vous avez sûrement des dossiers avec un nombre considérable de fichiers et sous-dossiers juste dedans (je pense particulièrement à
Mes Documents ou encore à
Windows...).
Enfin bref, bonne nouvelle : vous pouvez
cumuler les commutateurs, on peut donc envoyer un
dir avec à la fois le commutateur
/s (exploration des sous-dossiers) et le commutateur
/p (pause à chaque fenêtre pleine). Concrètement, ça donne :
Code : Console
Sinon, il reste une chose (et une seule) que l'on n'a pas vue avec
cd : je ne vous ai pas dit comment changer de disque.
Tiens, c'est vrai ça, comment fait-on ?
Eh bien, comme nous sommes dans la sous-partie des commutateurs, vous vous doutez bien que ça a un rapport avec

. On utilisera le commutateur
/d.
Votre commande
cd pour changer de disque aura comme forme :
Code : Console
Ici, il faut impérativement placer le commutateur avant le nom du disque... nous verrons dans peu de temps que ce n'est pas le cas pour toutes les commandes, chaque commande ayant sa syntaxe propre.
Ainsi, si vous voulez vous rendre sur le disque
d:, il vous suffira d'entrer :
Code : Console
Et voili

!
Ne pas oublier les deux points après le nom du disque...

Lorsque vous changez de disque, MS-DOS mémorise l'endroit où vous étiez sur le disque précédent avant le changement. Ainsi, si vous étiez sur
C:\dossier\autreDossier et que vous tapez
cd /d d:, vous vous retrouverez sur le disque
D: (jusque-là, rien de bien nouveau, j'imagine

) et de là, si vous tapez
cd /d c:, vous ne vous trouverez pas sur
C:\, mais bel et bien sur
C:\dossier\autreDossier...

magique, non ?
Pour illustrer, je reprends mon exemple :
De même, si vous entrez, par exemple (c'est pareil pour tous les disques) :
cd d:, DOS n'ira pas sur
D: mais vous affichera l'emplacement où vous vous trouverez si vous tapez
cd /d d:.
Et si vous entrez
cd tout seul... DOS vous affichera une information que vous avez déjà : l'emplacement où vous vous trouvez sur le disque sur lequel vous vous trouvez, aucun intérêt donc

(
pour l'instant ; on verra dans une partie ultérieure que, parfois, il n'est pas marqué à chaque ligne l'endroit où vous êtes... un
cd se révèle donc bien utile... enfin bon, là, on ne parle déjà plus des bases

).
Enfin, si vous voulez entrer, par exemple, depuis
D:, directement sur la racine du disque
C:, ne tapez pas
cd /d c: mais bien
cd /d c:\, l'antislash est là pour ça (sinon, dans l'exemple, avec un simple
cd /d c:, vous vous seriez retrouvé sur
C:\Dossier\Truc\Machin) :
Pour
cd, on a fait le tour, quant à
dir... il ne nous a pas encore révélé tous ses secrets, loin de là... nous le retrouverons dans peu de temps, un peu de patience donc

.
Bon eh bien, il est maintenant temps d'attaquer la dernière sous-partie avant le bilan et les exos (eh oui, déjà...).
Visualiser une arborescence sous DOS
Vous savez ce qu'est une arborescence ? Par exemple, dans
l'explorateur Windows, à gauche, vous avez une sorte d'arbre avec tous les dossiers (la racine est en haut : c'est la
racine du disque, car c'est de là que partent les branches, branchettes, brindilles, etc.).
Eh bien, sous DOS, on peut aussi la visualiser

, ce qui est parfois plus pratique qu'un
dir /s plein de texte sans âme.
Pour cela, une commande :
tree (
arbre en anglais).
Allez donc dans le dossier dont vous voulez voir l'arborescence et entrez :
Code : Console
Là aussi, vous avez deux lignes pas très intéressantes en haut, suivies enfin de l'arbre. Peut-être êtes-vous étonnés par la racine de cet arbre ("C:."), un petit rappel s'impose donc.

Pas mal... mais ils sont où, les fichiers, là-dedans ??
Rhô, un peu de patience

, tout comme pour
cd et
dir,
tree possède ses propres commutateurs, au nombre de deux :
/a et
/f.
Le commutateur /f
Code : Console
Voilà qui répond à votre question :
tree affichera les dossiers ET les fichiers

(bon, vous aurez remarqué qu'il y a moins d'infos à leur sujet qu'avec
dir... à chaque commande ses caractéristiques

).
Voyons maintenant le second commutateur.
Le commutateur /a
Code : Console
Ce commutateur permet d'afficher les branches, branchettes, branchiolettes et brindilles de toutes sortes avec des caractères ASCII... . Si vous pensez que c'est juste pour faire joli, détrompez-vous, ce commutateur n'est pas QUE d'ordre esthétique, nous en verrons un second intérêt dans la deuxième partie.
Comme pour dir, vous pouvez spécifier un chemin d'accès
et le tree se fera à partir du dossier précisé, sans faire changer le dossier courant.
Eh bien voilà, vous avez planté vos premiers arbres sous DOS, il est temps de passer à autre chose

.
Deux astuces en plus : historique et echap
Ah oui, j'oubliais : à la fin de chaque chapitre, vous aurez une autre sous-partie, quasiment hors sujet, que je ne savais pas où mettre... en général, elle sera reliée par un tout petit lien très fragile au reste, mais aura toujours un quelconque intérêt, je vous l'assure

.
Premier petit lien très fragile : l'histoire des flèches haut et bas.
Citation : Ce cours, troisième sous-partie (dir)
Appuyez sur les touches
flèche haut et
flèche bas. Et

les commandes que vous avez tapées précédemment s'afficheront. Plus vous appuyez sur la flèche du haut, plus vous remontez le temps et plus vous appuyez sur la flèche du bas, plus vous vous rapprochez du présent... magique

.
Ça ne vous fait penser à rien, le petit texte ci-dessus ? À un historique, peut-être... ?
Eh bien oui, DOS mémorise toutes les commandes que vous entrez, ceci dans l'ordre chronologique... et cet historique est
visualisable : la touche pour le faire apparaître est
F7.
Une fois l'historique affiché, vous pourrez choisir une commande avec les touches haut et bas puis l'exécuter avec
Entrée.
Si à un moment vous souhaitez effacer l'historique, appuyez sur
Alt +
F7.
Enfin, deuxième petit truc HS dont vous aurez peut-être besoin par la suite, quand vous aurez des commandes contenant beaucoup de caractères : pour effacer intégralement la ligne que vous êtes en train d'écrire, au lieu de maintenir enfoncé le
Bksp (touche située au-dessus de la touche
Entrée), appuyez une fois sur
ECHAP, l'effet sera le même

.
Quasiment toujours, vous aurez aussi avec chaque chapitre un ou des exercices (plus le QCM). Leur but ? Vérifier que vous avez assimilé l'essentiel ; donc, que vous maîtrisez le bilan. Pour les autodidactes, c'est aussi comme cela qu'ils verront s'ils ont tout compris par eux-mêmes ou s'il leur manque quelque chose. Pour ce chapitre, l'exercice ne risque pas d'être des plus intéressants... mais je vous conseille tout de même de le faire

.
Énoncé
- Rendez-vous dans le dossier C:\Program Files\.
- Choisissez-y un dossier et progressez le plus loin possible à l'intérieur, de sous-dossiers en sous-dossiers.
- Revenez ensuite à la racine sans utiliser le raccourci direct.
- Faites la même opération, mais en choisissant un autre dossier dans Program Files.
- Revenez sur la racine avec le raccourci.
- Démarrez un dir dans tous les dossiers et sous-dossiers, puis interrompez.
- Allez dans un dossier avec beaucoup de fichiers mais pas trop.
- Démarrez un dir de façon à pouvoir lire tout ce que contient le dossier sans devoir toucher à "l'ascenseur" par la suite.
- Si vous avez un deuxième disque, baladez-vous dessus, puis changez, puis rebaladez-vous, puis changez à nouveau (c'est important de comprendre les manips et subtilités de ces changements : plus tard, vous pourrez ainsi utiliser des disques amovibles, genre clés USB).
- Pour finir, plantez quelques arbres (une belle arborescence du disque C:, ça ne vous dit rien
?).
Et pour les plus intrépides : place au QCM

!!
Dans ce cours, les QCM exploreront le sujet en profondeur, et, par conséquent, seront
DIFFICILES 
. Cela veut dire deux choses :
- si vous avez un mauvais résultat à celui-ci, MAIS que vous n'avez eu aucune difficulté ni pour la "récitation" du bilan, ni pour le(s) exo(s) précédent(s), que vous n'avez pas grand-chose à craindre pour la suite : vous arriverez à suivre, c'est juste que les points un peu plus difficiles vous ont échappés ;
- si vous avez un bon résultat, que je ne me fais vraiment aucun souci pour vous
.
Ouf ! Pas facile, le QCM, n'est-ce pas ? (Ne me dites pas non, ça me ferait déprimer...

) Enfin bon, je vous le répète, si vous êtes tombés dans les pièges et ne l'avez du coup pas réussi, ne vous en faites pas : a priori, vous n'aurez aucun mal à suivre la suite tant que vous comprenez le bilan et que l'exo ne pose aucune difficulté

. Et si vous avez remporté ce test haut la main, chapeau bas, dès que je m'en serai acheté un

.
Prochain chapitre : un
trésor pour tout Dossien

,
Ahoy !
Help, une rubrique d'aide
Sous DOS, vous avez environ 70 commandes, chacune possédant ses propres commutateurs...
70 ? Chacune ses propres commutateurs ? Toutes les retenir ? Au secours ! À l'aide ! HELP

!!!!
Toutes les retenir, non, ça ne sera pas la peine

. Une petite vingtaine (si ce n'est pas une quinzaine) suffit largement pour les choses les plus courantes. Par contre, pour "HELP!!!!", vous ne croyiez pas si bien dire.

HELP !!!!
Help, "Aide", "À l'aide" voire "Au secours", ou tout ce que vous voulez dans le genre, est une commande bien pratique. En effet, elle permet d'afficher à l'écran
toutes les commandes MS-DOS.
Code : Console
Eh

! Je rêve ou quoi ? Y a une commande
IF ? On peut faire des programmes en DOS ?
Eh oui

, enfin... levons le voile : avec les commande DOS, on peut programmer en
batch. En fait, tout ce que vous avez entré précédemment (
cd,
dir,
tree et maintenant
help) sont des commandes utilisables directement si vous faites du batch. Je pensais d'ailleurs faire une deuxième partie consacrée à celui-ci, mais il existe déjà un tuto à ce sujet.
Enfin bref, voici une commande qui répond à votre angoisse : elle affiche le nom des commandes en majuscules suivi d'un bref résumé de leur(s) effet(s).
Des infos sur une commande précise
Euh

... oui, mais juste un truc... on n'a qu'un résumé d'une petitesse remarquable... comment on fait alors pour connaître l'effet précis d'une commande ?
Comme toujours, il y a une solution, il suffit d'entrer :
Code : Console
| |
help commandeDontVousSouhaitezObtenirPlusDinfos
|
et vous aurez des informations
détaillées supplémentaires sur le fonctionnement d'une commande (au fait, vous avez aussi remarqué que leur

tout en haut n'expliquait pas vraiment qu'il fallait entrer
help puis le nom de la commande... DOS a aussi son français,
parfois un peu éloigné du notre il faut dire

...).
D'ailleurs, un truc que je vous demande de faire systématiquement à partir de maintenant, est, dès que l'on étudie une commande ensemble, d'entrer aussi
help commandeEtudieeEnsemble, à votre plus grand bénéfice... ; en option, ça vous donnera une bonne occasion pour me hurler dessus s'il me prend l'envie de vous raconter des bobards. Et puis, si je ne m'abuse, ça vous fait déjà ça à entrer :
Code : Console
| |
help cd
help dir
help tree
|
et pour finir...
Code : Console
Bah oui

.
Mais... et si on a la flemme de taper help devant la commande à chaque fois, on fait comment ?
Normalement, on surmonte sa flemme

... mais, il existe une autre solution : le commutateur
/? .
Le commutateur /?
Ce commutateur est très facile à utiliser ; il suffit d'entrer :
Code : Console
et ça a le même effet que :
Code : Console
vous permettant ainsi d'économiser deux caractères

.
Voyons maintenant de plus près ce que ça donne...
Code : Console
Tout en haut, le bref résumé est rappelé, puis suivent le nom de la commande et de ses homonymes éventuels (voir
cd /?) ainsi que sa syntaxe (qui indique l'ordre dans lequel doivent être placés les paramètres) et les commutateurs possibles, suivis ensuite par une description un peu plus complète de la commande. Nous verrons dans le chapitre suivant cette histoire de syntaxe souvent obscure au départ, pas d'inquiétude

.

Ouh là ! Mais c'est qu'il y en a une sacrée masse, des commutateurs possibles pour
dir ! On les voit quand ?
Dans le chapitre suivant

.
Bon eh bien voilà : pour
help et son commutateur, on a fait le tour.
Mais au fait, je pensais à un truc... maintenant qu'on connaît cette histoire de help, comment peux-tu encore nous servir à quelque chose ?
C'est vrai que, subitement, je vois mon utilité un peu réduite... mais ce n'est pas si simple : évidemment, vous pouvez décider à partir de maintenant de vous passer de ce cours,
help est suffisant à lui seul... mais il y a quelques détails.
-
Rappel
Sous DOS, vous progressez SANS FILET : ça veut dire, par exemple, qu'il n'y a pas de corbeille à fichiers, qu'une fausse manip' peut engendrer des pertes de données voire causer des dégâts ou sur MS-DOS directement, ou même sur Windows lui-même si vous modifiez des fichiers systèmes... . Il est donc nécessaire de connaître les effets précis d'une commande avant de la lancer. Je décline toute responsabilité en cas de dommages éventuels causés à votre machine.
- Vous avez pu voir que parfois l'aide de DOS utilise un français un peu différent du nôtre, et, de ce fait, un peu plus dur à comprendre...
- Vous aurez peut-être remarqué, au tout début de ce chapitre, dans
Citation : Ce tuto, au tout début
Help, "Aide", "À l'aide" voire "Au secours", ou tout ce que vous voulez dans le genre, est une commande bien pratique. En effet, elle permet d'afficher à l'écran toutes les commandes MS-DOS.
que le mot "toutes" était en italique... ce n'est pas pour rien : comme partout, il y a des commandes cachées... nous en verrons d'ailleurs quelques-unes au fur et à mesure à partir du chapitre 4 et dans les parties suivantes
.
- Enfin, bien qu'il soit plus bénéfique d'apprendre sur le tas, un cours est plus ciblé et permet plus rapidement d'avoir les bases pour continuer plus vite par soi-même ensuite...
- et sinon, ça vous barbe vraiment tant que ça, ce cours
?
Enfin bon, si vous souhaitez quand même arrêter la lecture de ce cours dès maintenant, bah... merci de l'avoir lu jusqu'ici et à la prochaine

!
Bon, eh bien voilà, donc, bah... hum... ce n'est pas tout ça mais..., c'est l'heure du bilan

.
Pour respirer un bon coup : cls
Hum oui, mais c'est quoi, ce chapitre d'une taille ridicule ? En plus une image énoooooooorme totalement inutile pour help... faudrait peut-être penser à meubler un peu, avant le bilan, non ?
Perspicaces

... bon eh bien, le bilan viendra un peu plus tard...
Pour meubler : voici une commande que je ne savais pas où caser, qui fait partie des bases sans être essentielle, mais qui est bien pratique.
Souvent, votre fenêtre MS-DOS sera pleine... de texte. Personnellement, je trouve pénible de devoir regarder en bas de l'écran le curseur pour taper la commande suivante... heureusement, il y a une solution :
cls (
clear screen, "vider écran", en anglais).
Code : Console
Là, je ne peux vous montrer que "l'avant" et "l'après"

.
Ouf, on respire !
Voilà, c'est fait, c'est meublé (et ne me dites pas qu'il y a une énooorme image inutile juste au-dessus, je le sais

).
Et maintenant, place au bilan, mais vraiment cette fois, hein

!
(

Euh... j'espère que vous n'avez pas oublié de taper
cls /? ou
help cls 
...)
Bilan
Dans ce chapitre, nous avons vu comment :
Commande help
Commande cls
Bon, d'accord, c'est un bien maigre bilan, cette fois-ci... mais bon, fallait bien faire un chapitre sur ça, non ?
D'ailleurs, je suis au regret de vous annoncer qu'il n'y aura ni exercices ni QCM dans ce chapitre, y a un sacré manque de matière

.
Et voilà un court cours ! Enfin bon, il fallait bien le faire à un moment ou à un autre

.
Prochain chapitre : quelque chose d'un peu plus intéressant : le rôle réel de la commande
dir, commande encore bien plus costaude et essentielle qu'il n'y paraît

.
Le secret de dir, ses commandes complémentaires
Dans le chapitre suivant, nous allons voir comment gérer des fichiers et des dossiers. Mais juste avant, je voudrais revenir un instant sur la commande
dir, car elle offre de nombreuses possibilités, et permet notamment d'introduire le chapitre suivant.
Voici donc un chapitre dédié entièrement à cette commande, à deux autres commandes qui permettent de faire ce qu'elle ne fait pas et à deux petits trucs en plus

.
Et je vais d'abord vous en apprendre une bien bonne :
dir n'affiche pas vraiment ce qu'il y a dans le dossier courant (le
vraiment est important), bah oui.

Ah bon ? Mais... pourtant... enfin... bah elle sert à quoi alors, cette commande ?
dir est, en réalité, une
commande de recherche 
. En fait, sous Windows, je pourrais dire que
dir s'apparente à ceci :
Bon, c'est pas tout ça, mais faut encore que je vous dise comment elle marche

.
Un peu de syntaxe
Revoyons un instant la syntaxe de cette commande.
Code : Console
Citation : Image ci-dessus
DIR [lecteur:] [chemin] [nom_de_fichier] [/A[[:]attributs]] [/B] [/C] [/D] [/L] [/N] [/O[[:]tri]] [/P] [/Q] [/S] [/T[[:]heure]] [/W] [/X] [/4]
Légende : en vert, le nom de la commande ; en orange : le chemin d'accès d'où vous souhaitez lancer la commande (si vous n'en mettez pas,
dir le fera dans le dossier courant) ; en rouge : enfin ce qui nous intéresse, ce qui fait que
dir est une commande de recherche ; en bleu : les commutateurs possibles pour cette commande.
Comme vous voyez, des commutateurs, il y en a une sacrée masse... avant de parler de cette histoire de recherche, je vais juste d'abord en éliminer quelques-uns, histoire que ça soit fait.
Les commutateurs /p et /s
Bon, ceux-là, vous les connaissez déjà

.
Les commutateurs /b /c /d /l /q /w /4
Ces commutateurs sont faciles d'utilisation, vous pouvez expérimenter par vous-mêmes leur(s) effet(s).
(À noter cependant : pour
/b : deux dossiers ("." et "..") ne sont pas listés ; pour
/d, qui a le même effet que
/w : les dossiers sont entre crochets, les fichiers ne le sont pas.)
Euh... juste un truc... pourquoi dir /c a-t-il le même effet que dir tout court ??
Parce que, quand vous entrez
dir, DOS met par défaut et sans vous demander votre avis le commutateur
/c (c'est l'histoire de la variable d'environnement
DIRCMD - voir en bas de l'image -, on en parlera dans la partie suivante). Pour
retirer un commutateur, pour qu'il ne fasse pas son effet, mettez juste un moins ("-") devant.
Ce qui donne :
Code : Console
Voilà, voilà

.
Les commutateurs /n et /x
Vous vous souvenez qu'il y a plusieurs versions de DOS... eh bien, le commutateur
/x permet d'afficher une colonne supplémentaire avec les noms des fichiers et dossiers affichés selon une version antérieure... celle où il y avait encore les
~1 !! Vous pouvez donc expérimenter du coup ce que ça donne

.
Et pour
/n... essayez, rien ne change... /n est donc probablement pré-configuré ! Que faut-il donc entrer ? Eh oui, vous avez tout compris :
Code : Console
Et là... vous avez le superbe affichage 100 % pur premières versions, avec les noms à gauche et le ~1

.
Les commutateurs /t et /o
Mis en derniers à cause de leur syntaxe bizarre :
[/o[[:]tri]] et
[/t[[:]heure]].
Rassurez-vous : de même, il y aura toujours un slash devant la lettre. Mais, grosse différence :
[[:]qqchose]... il s'agit d'un commutateur avec paramètre : la commande fera son boulot, avec plus ou moins de différences suivant le commutateur, mais avec encore des variantes selon le paramètre de ce dernier.
Pour la syntaxe simplifiée, ce serait :
Code : Console
| |
commande /caractereDuCommutateur:paramètre(s)
|
Les paramètres possibles sont indiqués à côté du commutateur dans la rubrique d'aide.
Quelques exemples :
Code : Console
affichera les répertoires avant les fichiers.
Code : Console
affichera les répertoires avant les fichiers puis les mettra en ordre alphabétique.
Code : Console
aura le même effet que
Code : Console
L'ordre des paramètres a donc une importance...
Vous ne pouvez utiliser le commutateur /t:paramètre que quand vous utilisez le commutateur /o avec comme paramètre d (organisation suivant la chronologie).
Voilà, voilà, on a vu les "quelques-uns".
Ah... oui, OK..., il en reste combien, maintenant ? Zér0 ?
Non, un

! Mais il fait déjà partie de la fonction de recherche de
dir... je vais donc en parler dans peu de temps

.
Une commande de recherche
dir est donc une commande de recherche... et une commande de recherche sert à...
rechercher ! Bien ! Rechercher quoi ? Ce qu'il y a sur votre machine, c'est-à-dire des fichiers ou des dossiers.
Premier truc hyper-important pour trouver quelque chose : savoir ce que l'on cherche, donc, le nom dudit fichier ou dossier.
Ainsi, pour trouver un fichier ou un dossier dans le dossier courant, il suffira d'entrer :
Code : Console
| |
dir NomDuFichierOuDuDossier
|
Exemple
Je cherche à vérifier s'il n'y a pas un certain
fichier.txt sur le disque C:.
Code : Console

C'est bizarre... pourtant, j'étais certain qu'il y en avait bien un sur le disque C:...
Vous l'avez deviné, il fallait rajouter le commutateur
/s pour qu'il regarde dans tout le disque

, ce qu'on a appris avant est toujours valable.
Code : Console
Ah, bah le voilà, il se trouvait dans le dossier fichiers !
Maintenant, imaginons la situation suivante : vous vous trouvez sur un dossier très loin de la racine du disque, et vous voulez savoir où se trouve un autre fichier, cela depuis la racine du disque... Vous avez donc comme solution ceci :
Code : Console
| |
cd \
dir fichier.extension /s
|
Mais imaginons ensuite que vous vouliez revenir sur le dossier où vous étiez avant... beaucoup de
cd à entrer, n'est-ce pas ?
Eh bien, rassurez-vous, comme l'indique la syntaxe (et c'est le cas pour presque toutes les commandes) vous pouvez aussi entrer avec
dir un chemin d'accès.
Code : Console
| |
dir cheminDAcces\fichier.extension (+commutateurs éventuels évidemment)
|
Et là,
dir recherchera le fichier depuis l'endroit spécifié sans que le dossier courant ne soit modifié, faute de
cd. Rappel : la racine du disque ("\") est un chemin d'accès comme un autre, un
dir \fichier.extension /s rechercherait donc un fichier sur tout le disque depuis la racine.
Si vous voulez chercher quelque chose depuis un chemin d'accès, ne mettez pas d'espace entre le chemin d'accès et le nom du fichier : sinon,
dir afficherait d'abord ce qu'il y a dans le dossier spécifié par le chemin d'accès puis chercherait le fichier dans le dossier courant...
Et... mais... est-ce que c'est possible de rechercher plusieurs fichiers à la fois ??
Oui, ça l'est

(et c'est d'ailleurs ce que sous-entend l'avertissement ci-dessus). En effet, rien ne vous empêche d'entrer :
Code : Console
| |
dir fichier1 fichier2 fichier3 etc...
|
Et
dir recherchera tous ces fichiers là où vous l'avez spécifié

.
Eh ! Mais, attends un peu ! Si on doit séparer les noms de fichiers par un espace, comment on fait pour rechercher UN fichier dont le nom contient quelques espaces ?
Bonne question

! En effet, si vous entrez :
Code : Console
| |
dir bonjour comment ça va.txt
|
dir vous recherchera les fichiers
bonjour,
comment,
ça et
va.txt là où vous lui avez demandé, et non pas un seul fichier
bonjour comment ça va.txt.
Eh bien, pour qu'il n'y ait pas d'ambiguïté, les guillemets sont obligatoires :
Code : Console
| |
dir "bonjour comment ça va.txt"
|
Et là, tout marchera comme sur des roulettes

.
Et pour rechercher plusieurs fichiers dans plusieurs disques durs ?
Bien

! On s'intéresse à tout, il semblerait ! Je rappelle que le disque dur est une partie du chemin d'accès comme une autre. Si l'on cherche deux fichiers, par exemple
fichier.txt et
fichier.bmp sur les disques C: et D:, rien ne vous empêche d'écrire :
Code : Console
| |
dir C:\fichier.txt D:\fichier.txt C:\fichier.bmp D:\fichier.bmp /s
|
À noter : si j'avais entré la même chose mais sans mettre l'antislash après les disques ("dir C:fichier.txt etc.", dir rechercherait le fichier depuis l'endroit qu'il a mémorisé de ce disque (voir l'histoire du cd /d d: et cd /d d:\ du chapitre 1).
Bon eh bien, avant de passer à la suite, il nous reste le dernier commutateur :
/a.
Il est relativement simple d'utilisation :
dir n'affichera que les fichiers portant le nom spécifié ET le ou les attribut(s) mis en paramètres (attributs possibles : D = Dossiers ; R = En lecture seule ; H = Caché ; A = En archive ; S = Système).
Ainsi, si j'entre :
Code : Console
dir recherchera dans tout le disque courant tous les fichiers CACHÉS de nom
fichier, d'extension
.txt (mon
fichier.txt d'avant ne marcherait donc pas car il n'est pas caché ; réciproquement, si
fichier.txt était caché,
dir ne le trouverait pas si je ne spécifiais pas "chercher les fichiers cachés"... il est donc nécessaire de spécifier quel(s) type(s) de fichier
dir doit chercher).
Code : Console
Là,
dir recherchera dans tout le disque courant tous les dossiers et seulement les dossiers (il exclut les fichiers) de nom
dossier.
Et attention, c'est important :
Code : Console
/a: sans rien affichera tous les fichiers ou de dossiers de nom fichier, quels que soient leur(s) attribut(s).<taille valeur="ttpetit"></taille>

Ah oui d'accord... on voit soudainement
dir sous un autre angle... mais au fait, pourquoi, quand on entrait
dir tout seul, il affichait tout ce que contenait le dossier courant ?
Parce que...
Un symbole qui veut tout dire
...
dir comprenait qu'il fallait tout afficher, tout simplement

.
Cette idée de TOUT est contenue sous DOS dans un symbole, que vous connaissez déjà bien, il s'agit de celui-ci :
*.
Quand vous entrez donc
dir, DOS comprend automatiquement que vous vouliez dire
dir * , ce qui veut dire "trouver puis afficher les noms de
TOUS les fichiers et dossiers présents là où on m'a demandé de chercher".
* veut donc dire tous les caractères possibles, qu'il y en ait aucun, un, deux... jusqu'à +infini...

Euh... ouais, mais... quel intérêt d'avoir un signe pareil ?
Eh bien il sert à beaucoup, beaucoup de choses : non seulement il veut dire TOUT, mais, en plus, on peut le mettre où l'on veut.
Exemples :
Code : Console
recherchera dans le dossier courant les fichiers
.txt qui ont pour nom quelque-chose-n'importe-quoi suivi de
haha puis les affichera.
Code : Console
cette fois-ci recherchera les fichiers ayant pour nom
hihi mais ayant n'importe quelle extension.
Code : Console
ici, recherchera tous les fichiers ayant pour nom
hoho et dont l'extension comporte au moins un "t".
Code : Console
là, recherchera n'importe quel fichier contenant au moins un "a" dans le nom.
Code : Console
et là,
dir affichera tous les dossiers contenus dans le disque courant (note : j'aurais pu me dispenser de taper le symbole * , mais c'est toujours plus lisible

).
Enfin, ce symbole peut être utilisé dans d'autres commandes que
dir (voir chapitre suivant), d'où sa grande importance.
Bon, il ne nous reste plus qu'à voir un symbole avant de passer aux commandes complémentaires de
dir.
? : 1 caractère ou 0 caractère
Un autre symbole, presque aussi tordu que * , est celui-ci : ? .
* veut dire
TOUT, n'importe quoi, tout ce qui est possible, des combinaisons infinies de
0 à
+infini caractère(s).
? veut dire, quand à lui,
UN caractère, n'importe lequel, ou
Zér0 caractère. En fait, "*" équivaut en quelque sorte à "une infinité de ?".
Pour expliquer, rien de mieux que quelques exemples :
Code : Console
recherchera dans le dossier courant les fichiers
.txt dont le nom contiendra UN "c" suivi
ou non d'UN SEUL caractère (par exemple :
c.txt ,
ca.txt,
c2.txt etc.).
Code : Console
recherchera dans le dossier courant les fichiers, ou qui n'ont pas d'extension, ou qui n'ont une extension que d'un caractère. Pour le nom, c'est long à expliquer, voir les exemples

(exemples :
abc,
abc.t,
tabcr.m,
apbnc etc.).
Code : Console
recherchera dans le dossier courant les fichiers dont le nom contient de 0 à 4 caractères et dont l'extension contient de 0 à 3 caractères (exemples :
la.png,
dodo.pm,
a,
tab.i etc.).
Vous pouvez utiliser les symboles * et ? dans le moteur de recherche de Windows, mais aussi sur les moteurs de recherche sur Internet ! Quoique "*" ait généralement un comportement aléatoire, "?"
Voilà, voilà, fini pour les symboles bizarres... pour l'instant

; de toute manière, on aura l'occasion de les utiliser à fond dans le chapitre suivant

.
Vocabulaire : ces deux caractères (parmi d'autres) sont dits "caractères génériques".
Bien

, mais... si j'ai bien compris,
dir ne permet pas de rechercher du texte, comment on fait alors ?
Ah là là...
dir, c'était bien, mais on a atteint ses limites

... pour chercher du texte, nous devrons passer à deux autres commandes qui sont...
Pour chercher du texte dans des fichiers
...
find (
trouver, en anglais) et
findstr (
find string = trouver chaîne de caractères).
Commençons par
find.
Citation : sous l'invite de commande : find /?
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "chaîne" [[lecteur:][chemin]nom_de_fichier[...]]
Légende : en vert, le nom de la commande ; en bleu, les commutateurs possibles ; en orange, l'endroit de recherche ; en rouge, ce qu'il faut rechercher.
Au sujet de la syntaxe : là, vous voyez bien que les commutateurs sont placés AVANT le reste, ça veut dire qu'il faudra impérativement que vous les placiez AVANT le reste quand vous tapez votre commande.
Alors voilà, pour chercher du texte dans UN fichier, il vous suffira d'entrer :
Code : Console
| |
find "texteARechercher" fichierOuSonCheminDAcces
|
Et pour en rechercher dans plusieurs fichiers, rien ne vous empêche de marquer, comme vous l'indique dans la syntaxe ceci : "[...]" :
Code : Console
| |
find "texteARechercher" fichier1 fichier2 fichier3 etc.
|
Ah ok... mais... comment on fait pour rechercher du texte dans TOUS les fichiers d'un dossier ? On va tous les taper un par un

?
C'est une solution

, mais il y a plus simple... l'histoire de TOUT, ça ne vous rappelle rien ? * .
Code : Console
| |
find "texteARechercher" *
|
recherchera le texte dans TOUS les fichiers du dossier courant
ET des sous-dossiers.

Ah bon ? Mais... pourquoi ?
Un nom de fichier contient en fait son chemin d'accès (et si je le mets en gros, rouge, gras, souligné c'est que c'est pour le moins important
). * voulant dire TOUT, ce symbole veut dire aussi TOUS les chemins d'accès possibles, donc TOUS les fichiers (et à l'occasion, leur chemin d'accès) depuis le dossier d'où vous avez lancé la recherche.
Ah... et comment on fait pour éviter ça ?
Eh bah, euh

... c'est-à-dire que... hmm...

... enfin...

... à vrai dire... c'est une excellente question, d'une pertinence pertinente, merci de me l'avoir posée

(à vrai dire, je n'en sais rien ; si à un moment je trouve, je le rajouterai ici, mais en attendant... et si vous savez, faites passer le message SVP

).
Enfin bon, broum, broum

bref, hum, hum, comme (presque) toute commande,
find possède ses propres... commutateurs

.
Les commutateurs /v /c /n /OFF[LINE]
Simples d'utilisation, aucune explication supplémentaire n'est nécessaire.
Cependant,
/OFF[LINE] est un bel exemple de commutateur présentant plusieurs caractères ; ici, les crochets veulent dire que
find /OFF a le même effet que
find /OFFLINE (je sens que le
/OFFLINE sera vite délaissé au profit du
/OFF 
).
Le commutateur /i
Si je l'ai mis à part, ce n'est pas parce qu'il est plus compliqué, c'est juste pour revenir un instant sur l'histoire de "respecter la casse".
Rappel : DOS NE respecte PAS la casse, c'est-à-dire que pour lui, une majuscule = une minuscule.
find, quant à elle, la respecte, il sera donc nécessaire d'entrer un
/i (ou
/I, c'est la même chose) pour qu'elle n'en tienne pas compte.
Voilà, c'est revenu un court instant, un petit rappel ne fait jamais de mal

.
Euh... ouaip... mais y a deux trucs qui me chiffonnent... est-ce que l'on peut rechercher plusieurs chaînes de caractères dans un même ensemble de fichiers avec find ou une seule chaîne dans plusieurs dossiers ?
Non

. Et c'est là qu'interviendra
findstr.
findstr est beaucoup plus compliquée que
find... mais permet de rechercher plusieurs chaînes de caractères à la fois, et même dans plusieurs dossiers. Comment ? Avec les commutateurs
/C: et
/D:. Mais pour cela nous allons mettre plusieurs fois le même commutateur, et séparer des noms de dossier par des points-virgules

!
Globalement,
findstr fonctionne comme
find, on mettra juste
/c: devant chaque chaîne... et on rajoutera les dossiers à fouiller après.
Code : Console
| |
findstr /c:"chaîne1" /c:"chaîne 2" etc... /d:dossier1;dossier2;dossier3... *
|
Voilà, si vous avez compris
find, vous avez aussi compris
findstr 
.
Eh bien, voili, voilou, passons à autre chose

.
Caractères génériques et nom de dossier, lien entre DOS et C
Allez, comme d'hab', pour finir, quelques petits trucs plus tellement dans le sujet

.
D'abord, sous Windows, essayez de créer un nouveau dossier de nom "salut ! ça va ?" ... je parie 10 contre un que vous n'y arriverez pas

.

Eh ! C'est vrai ! Il accepte pas le nom ! Comment ça se fait ?
J'imagine qu'il vous affiche ceci

:

Ces caractères ne sont pas acceptés dans les noms de fichiers et de dossiers... pour la bonne raison que / est réservé aux commutateurs, \ aux chemins d'accès, : aux disques durs, * et ? sont utilisés pour remplacer des caractères, on ne peut donc pas les mettre et pour les guillemets, vous l'avez vu pour l'histoire de "bonjour comment ça va.txt"

. Pour les autres, on les verra à un moment ou à un autre

. Votre dossier "salut ! comment ça va ?" contenant un point d'interrogation, Windows ne peut l'accepter.
Sinon, certains logiciels vous proposent d'enregistrer au format
Tous les Fichiers (ou
All Files). À côté, entre parenthèses, vous verrez souvent écrit : "(*.*)". Cela veut dire que vous devez spécifier et le nom, et l'extension du fichier ; c'est-à-dire que si vous n'en mettez pas, le logiciel n'en mettra pas non plus

.
Quant au lien entre DOS et C, nous le verrons par le biais d'une autre commande : vous savez, quand vous tapez
dir /p dans un dossier contenant beaucoup de fichiers... eh bien, j'attire votre attention sur cette ligne qui s'affiche forcément si l'écran se remplit :
Eh bien, cette ligne peut apparaître indépendamment de
dir si vous entrez :
Code : Console
(ça fait pas tilt, les C et Cplusplusseurs

?)
... pour la pause.
Eh oui, en C, sous console, les commandes MS-DOS peuvent être utilisées directement par le biais de :
Code : C
(d'où l'intérêt d'un
system("pause"); en fin de programme

).
Enfin, quand vous tapez
dir, ces deux lignes s'affichent aussi :
Code : Console
vous les affichera de même

.
Bien, eh bah... voilà pour la parenthèse plus trop dans le sujet... on passe au troisième bilan.
Gestion des fichiers et des dossiers
Alors, les moussaillons, on est prêts à s'attaquer enfin à ce que vos bâtiments ont dans le ventre

? On va en apprendre des trucs ici... créer

, altérer

, utiliser

, déplacer, copier, remplacer

... et ...
Supprimer 
.
Enfin bon, j'ai mis le dernier mot en gras, ce n'est pas pour rien

. En effet, je vous le rappelle :
Sous DOS, vous progressez SANS FILET : ça veut dire, par exemple, qu'il n'y a pas de corbeille à fichiers, qu'une fausse manip' peut engendrer des pertes de données voire causer des dégâts ou sur MS-DOS directement, ou même sur Windows lui-même si vous modifiez des fichiers systèmes... . Il est donc nécessaire de connaître les effets précis d'une commande avant de la lancer. Je décline toute responsabilité en cas de dommages éventuels causés à votre machine.
Comme on va entre autres apprendre à envoyer des fichiers et dossiers
ad patres, je vous sur-recommande donc de faire attention

.
Allez, les intrépides ! Trève de bavardages !
Aaaaaaaaaaà l'abordage !!! (Ça rime en plus.
)
Etape 1 : créer
md (
make directory, créer un répertoire, en anglais) permet de... créer un répertoire.
Code : Console
Code : Console
| |
md nomDuDossier1 nomDuDossier2 nomDuDossier3 ...
|
Il existe aussi une autre commande ayant le même effet que md : il s'agit de mkdir.
Cette commande est une des plus bêtes qui soient, vous arriverez à la maîtriser
plus vite que votre ombre.
Petite précision : ne vous cassez pas la tête avec l'histoire des extensions (dans
md /?), vous pouvez sans problème y entrer des dossiers et des sous-dossiers, DOS se chargera de tous les créer

.
Pour la création de fichiers... eh bien

... bah, comme sous n'importe quel système d'exploitation, ce sont les logiciels qui s'en occupent.

Des logiciels, sous DOS ?? Mais... lesquels ?
Les mêmes que sous Windows

, enfin... presque. En effet, il se peut que la plupart ne fonctionnent pas. Bref, si vous souhaitez avoir un exemple de programme propre à DOS, tapez :
Code : Console
Et vous aurez une superbe application, l'ancêtre de notre Bloc-notes chéri, qui se lancera.
Edit ? Je la vois pas dans help !
Ce n'est pas moi qui vous ai dit qu'il y avait des commandes cachées

?... en voilà donc une, et vous pourrez en savoir plus en entrant :
Code : Console
Voili voilou

. (Bon, c'est vrai qu'
edit est une application... mais vu qu'elle se lance comme une commande DOS, on peut dire que c'est les deux non

?)
1) Si vous enregistrez des fichiers avec edit, n'oubliez pas de préciser l'extension : si vous n'en mettez pas, il n'y en aura pas.
2) Sous edit, maintenez Alt enfoncé, vous verrez des lettres se blanchir dans la barre de menu. Gardez Alt enfoncé puis appuyez sur la lettre correspondante pour voir ce menu se dérouler. Comble du bonheur, cette histoire de Alt + lettre fonctionne sur... quasiment tous les logiciels Windows, sauf que cette fois vous aurez la lettre soulignée. Sinon, n'oubliez pas que normalement, sous edit y a pas de souris... même si en l'occurence il est possible de l'utiliser : pour "naviguer" dedans, la touche Tab est essentielle.
Donc voilà, si ça vous dit, vous pouvez créer aussi des fichiers avec
edit. Cependant, il y a un moyen plus direct pour en créer... et nous le verrons dans la partie suivante

.
Pour créer

, on a fini... passons à
altérer 
.</position>
Etape 2 : altérer
Enfin... quand je dis altérer... disons plutôt "renommer" et "changer les attributs"

.
Vous vous en doutez bien, ça correspond à deux commandes :
ren (
rename, renommer, en anglais) et
attrib (pour la traduction, mettez ce que vous voulez

).
Code : Console
| |
ren nomActuelDuFichierOuDuDossier nouveauNomDuFichierOuDuDossier
|
Pour renommer un fichier ou dossier, je considère qu'aucune précision n'est nécessaire

.
Par contre, un truc très intéressant avec
ren est celui-ci :
Code : Console
| |
ren *.extension *.nouvelleExtension
|
renommera tous les fichiers d'extension
extension par... leur même nom respectif mais avec
nouvelleExtension pour extension.
Code : Console
renommera tous les fichiers de nom
nom, quelle que soit leur extension, par
nouveauNom mais en gardant leur ancienne extension.
Allez, une petite illustration

.
Passons maintenant à
attrib :
Code : Console
attrib seul affichera à l'écran tous les fichiers contenus dans le dossier courant précédés de leur(s) attribut(s) (
R = lecture seule,
A = archive,
S = système,
H = caché).
OK, c'est bien, mais... comment est-ce qu'on modifie les attributs, alors

?
Parlons d'abord d'un... nouveau type de commutateur

.
Celui-ci :
+X ou
-X , sans slash.
Dans
attrib, c'est ce qui est utilisé :
Code : Console
| |
attrib +ou-desTrucs nomDuFichierOuDuDossier
|
Exemple :
Code : Console
Le fichier
toto.txt ne sera plus un fichier système (s'il en était un) et deviendra caché s'il ne l'était pas déjà.

Voilà, aucune précision n'est nécessaire, je crois que c'est assez clair

.
Observez bien cette image :

Un truc bizarre avec
attrib : si vous tentez de modifier les attributs d'un fichier caché sans modifier son attribut caché, DOS vous affichera un message d'erreur, il en va de même pour les fichiers système... ne vous inquiétez donc pas si vous voyez apparaître ce message, il suffit de modifier aussi les attributs cachés ou système (quitte à mettre un
+h ou un
+s même si c'est déjà le cas).
Sinon, vous pouvez aussi caser nos chers symboles * et ? ici :
Code : Console
rendra tous les fichiers du dossier courant cachés...
Enfin, le commutateur
/d est un peu bizarre : utilisable uniquement si le commutateur
/s est mis, seul un exemple peut permettre d'expliquer clairement :
Code : Console
rendra tous les fichiers du dossier courant et de ses sous-dossiers cachés.
Code : Console
rendra tous les fichiers
ET dossiers du dossier courant ainsi que des sous-dossiers cachés (ou comment rendre invisible toute une arborescence de disque

).
Pour l'altération, c'est tout

.
Utilisons enfin nos fichiers, passons à la troisième étape

!
Etape 3 : utiliser
Ici, nous allons voir 3 choses : ouvrir un exécutable puis n'importe quel type de fichier, afficher un fichier texte à l'écran et enfin, imprimer un fichier.
Ouvrir un exécutable, puis n'importe quel type de fichier
Pour faire cela vous avez besoin d'une... eh non ! Je vous ai bien eus HAHAHA

... pour cela, vous
N'avez
PAS besoin de commande

.

... mais, que, alors, quoi ??
Plus simple que tout, pour lancer un exécutable ou ouvrir n'importe quel fichier (l'application mise par défaut se chargera alors avec le fichier), il suffit d'entrer son chemin d'accès, je vous ai bien eus, hein

?
Code : Console
fera donc avec ce fichier l'action par défaut sous Windows, c'est-à-dire celle que vous obtenez en faisant un simple double-clic

.
Bon, ça, c'est fait

, passons ensuite à afficher le contenu d'un fichier.
Afficher le contenu d'un fichier
Cette fois-ci, on a bien affaire à une commande :
type (
taper, dactylographier, en anglais).
Sa syntaxe est des plus basiques :
Code : Console
Code : Console
| |
type fichier1 fichier2 fichier3...
|
Allez, un petit
type pour détendre l'atmosphère

:
Haha (je la connaissais déjà mais bon...)... mais juste une question : c'est quoi, les symboles bizarres ?
Les endroits où il y avait des accents

... en effet, ceux-ci ne passent pas en DOS.
Bon eh bien maitenant, imprimons !
Imprimer un fichier
Avant toute chose, il faut savoir que seule une imprimante reliée au
port LPT1 pourra être utilisée, une imprimante reliée à un
port USB ne marchera pas.
Le port LPT1 ??
Rien de mieux qu'une petite image pour expliquer

:
En haut, un port LPT1, en bas, un port USB (images piquées sur ce site).
Vous voyez où il est maintenant ? Bien

! Je ne sais pas si vous avez une imprimante qui peut se brancher dessus, mais dans tous les cas, je donne ma commande :
Code : Console
Tout simplement

(print = imprimer, en anglais).
Et comme il s'agit du port LPT1, on peut aussi marquer (je vous apprends un nouveau caractère interdit dans les noms de fichiers et dossiers, au même titre que /\": ?*

) :
Code : Console
En effet,
> veut dire "envoyer" ; ainsi, le fichier sera envoyé vers le port LPT1, sur lequel est branché l'imprimante.
Après tout ça, il est désormais temps d'apprendre à déplacer les fichiers

!
Etape 4 : déplacer, copier, remplacer
Comme nous apprendrons à couper / copier / coller, faites attention à ne pas écraser des fichiers par d'autres !
Voyons maintenant ces quatre commandes.
Move
Déplacer...
move in english.
Code : Console
| |
move fichierOuDossier destination
|
move, tout comme les autres commandes que nous verrons ici, ne peut gérer par ce biais... qu'un seul fichier ou dossier ! Pour en déplacer plusieurs, il vous faudra utiliser les caractères génériques.
move est l'équivalent de notre bien aimé couper-coller, avec la souris en moins

.
move ne déplace ni les fichiers système, ni les fichiers cachés, vous déclarant que "Le fichier spécifié est introuvable.". Il faut donc leur changer leur(s) attribut(s) avant de pouvoir les déplacer.
Aucune autre explication n'est nécessaire, vous arriverez à vous débrouiller seuls

.
Maintenant que nous savons couper-coller, nous allons voir comment copier-coller.
Copy et Xcopy
Pour copier, vous avez la commande
copy (
copier).
copy, comme son nom l'indique, permet de copier... des fichiers, mais pas des dossiers. Cette commande a aussi quelques commutateurs... sans grande importance la plupart du temps.
Code : Console
| |
copy fichierACopier destination
|
ou, si vous souhaitez copier tout le contenu d'un dossier (mais uniquement le contenu, pas le dossier lui-même et sans le contenu de ses sous-dossiers) dans un autre :
Code : Console
| |
copy dossierDontLesFichiersSontACopier dossierDeDestination
|
Comme pour move, copy ne peut gérer qu'un seul fichier ou dossier (dans le cas des dossiers, il ne touchera pas aux sous-dossiers...). Il faudra donc utiliser les caractères génériques le plus souvent. copy ne s'occupe pas non plus ni des fichiers système, ni des fichiers cachés. Rappel : copy ne permet pas de copier des dossiers.

Mais y a bien une commande qui permet de copier des dossiers, non ?
Oui, et il s'agit de
xcopy. Elle est plus complexe mais permet pas mal de trucs intéressants.
Avec une syntaxe très semblable à celle de
copy, elle permet déjà d'inclure des fichiers cachés et système avec son commutateur
/H.
Code : Console
| |
xcopy *fichiers*.* destination /h
|
Pour la copie de dossiers, donc d'
arborescences, on a affaire au commutateur
/E (variantes de ce commutateur :
/S, qui ne copie que les fichiers et dossiers et sous-dossiers non vides et
/T, qui ne s'occupe que des dossiers et sous-dossiers, mais uniquement ceux qui ne sont pas vides ; un
/T /E s'occupe aussi des dossiers vides).
Code : Console
| |
xcopy arborescence destination /e (ou les variantes ci-dessus)
|
Pour
xcopy, il faut aussi savoir que si vous spécifiez comme destination un dossier n'existant pas, DOS vous demandera :
Code : Console
| |
Est ce que "destination" spécifie un nom de fichier ou un nom de répertoire de destination
(F=Fichier, R=Répertoire) ?
|
Devinez ce qu'il faut répondre ? R, bien

!
xcopy vous créera ensuite le dossier de destination. (On parlera de la réponse F dans la seconde partie de ce big-tuto.)
Voilà, ça suffit pour
xcopy, il y a plein d'autres commutateurs, mais inutile d'en parler ici

.
Une commande de "mise à jour"
Sous DOS, il existe une sorte de raccourci pour mettre à jour des fichiers... une simple commande de remplacement.
Code : Console
fichier peut évidemment contenir toutes sortes de caractères génériques.
replace (
remplacer)
copiera le(s) fichier(s) dans le dossier spécifié... uniquement si ceux-ci
existent déjà et
portent le même nom. Autrement dit : elle ne se contentera que de remplacer les fichiers qui existaient déjà, sans toucher aux autres.
replace n'est pas une commande de remplacement au sens de "remplacer un fichier par un autre" : vous ne pouvez pas marquer :
Code : Console
| |
replace fichierRemplaçant fichierARemplacer
|
Ah ok... mais pour une mise à jour, ce serait bien de pouvoir, de un, décider de la date, remplacer uniquement des fichiers plus anciens par des fichiers plus récents, et de deux, de pouvoir rajouter de nouveaux fichiers...
Et c'est le rôle des commutateurs

:
/U mettra vraiment à jour par des fichiers plus récents ;
/S s'occupera aussi des sous-dossiers ;
/A se contentera de ne rajouter que des nouveaux fichiers, sans toucher aux anciens (inutilisable avec les commutateurs
/u ou
/s).
Allez, en bonus, deux "prototypes" de replace bien pratiques pour la mise à jour

:
- mettre à jour un dossier par le biais d'un autre dossier (remplace uniquement les fichiers anciens par les plus récents)
Code : Console
| |
replace dossierDeMiseAJour\* dossierAMettreAJour /u /s
|
- rajouter uniquement les nouveaux fichiers non contenus dans le dossier à mettre à jour :
Code : Console
| |
replace dossierDeMiseAJour\* dossierAMettreAJour /a
|
Voilà donc pour déplacer, copier, remplacer

. La commande
replace n'est pas essentielle car peut être remplacée par des
copy ou des
move, mais elle est parfois bien pratique

.
Passons maintenant à... la
destruction.
L'Etape 666 : destruction
Vous voici désormais dans l'antre de
La Bête Toufou,
Zér0s ! Ici, dans le fin fond de
la Cave, vous ferez connaissance de deux commandes :
rd,
remove directory (homonyme de
rmdir, littéralement : enlever)
effacer répertoire et
del (
delete, supprimer), homonyme de
erase (
effacer).
Re-rappel :
IL N'EXISTE PAS DE CORBEILLE SOUS DOS. UN FICHIER OU UN DOSSIER SUPPRIMÉ L'EST DÉFINITIVEMENT (cette fois-ci, j'espère que c'est vraiment bien clair et compris

).
Je reprécise que je redécline toute reresponsabilité en cas de reproblème que vous aurez recausé à votre remachine.
Maintenant que l'avertissement a été à nouveau explicité, on pourra voir ces commandes de plus près.
RD (ou RMDIR)
Deux commandes
homonymes d'une simplicité à couper le souffle.
Code : Console
Code : Console
| |
rd dossier1 dossier2 dossier3 ...
|
supprimera un ou des dossiers
vide(s).
Il faudra rajouter le commutateur
/s pour qu'il supprime le dossier... et tout ce qu'il contient.
Code : Console
rd supprimera le dossier concerné et tout ce qu'il y a à l'intérieur
définitivement... sur simple confirmation... => danger.
Pour augmenter le péril, il y a encore le commutateur /q qui permet de ne pas devoir confirmer la suppression... je vous le déconseille très fortement.
DEL (ou ERASE)

Code : Console
Code : Console
| |
del fichier1 fichier2 fichier3 ...
|
del supprimera le(s) fichier(s)
sans confirmation.
Simple d'utilisation aussi,
del possède cependant plus de commutateurs, tous aussi simples d'emploi... j'apporte juste une précision sur deux d'entre eux :
/A et
/S.
/A
del ne supprime, si rien n'est précisé, que les fichiers avec
uniquement l'attribut A ou
sans attribut. Il est donc nécessaire de préciser les attributs si vous voulez supprimer des fichiers système, en lecture seule, ou cachés (il s'agit d'une sécurité). Si vous ne mettez rien après le
/a:,
del, comme pour
dir, ne se préoccupera pas des attributs.
/S
Tout simplement un moyen "propre" de vider les répertoires de certains fichiers (ou de tout fichier, voir plus bas

) tout en gardant l'arborescence.
Les caractères génériques fonctionnent sur del, mais pas sur rd... ainsi, un del * supprimera tous les fichiers dans le dossier courant (du moment qu'ils ne sont ni système, ni cachés, ni en lecture seule), et un del * /a: /s supprimera tout, dans le dossier courant et dans les sous-dossiers... mais gardera les dossiers eux-mêmes. Enfin bref, PRUDENCE. (Même si, heureusement, del demande une confirmation si vous utilisez des caractères génériques.)
del ne peut en aucun cas supprimer des dossiers, seule rd a ce pouvoir.
Ouf, vous êtes sortis de l'antre. Avec ce nouveau pouvoir, vous serez désormais prêts à affronter dans les plus brefs délais... le bilan, l'exo, et le QCM

...
Quitter l'invite de commandes
Pour finir ce chapitre et cette partie... nous parlerons de comment "finir" DOS

.
Juste une question... comment faites-vous pour quitter l'invite de commande ?
C'te question

! Je clique sur la petite croix en haut à droite, bien sûr

!
C'est bien ce que je croyais

. Eh bien, d'abord, figurez-vous que... les premiers Dossiens... ils ne l'avaient pas, leur petite croix en haut à droite. Comment ils faisaient, eux, pour quitter DOS ? (Bon, c'est vrai que quitter DOS revenait à éteindre l'ordinateur... et éteindre un ordinateur "à la barbare" ne posait pas de problème sous DOS si aucun processus n'était en cours, mais bon bref

)
Je parie qu'il y a une commande pour quitter, c'est ça

?
Gagné ! Et là, attention...
Code : Console
Tadaaah
! La voici, la voilà, toute simple et évidente, elle vous permet de quitter l'invite de commande
.
Source : http://www.siteduzero.com/tutoriel-3-9064-les-bases-du-ms-dos.html?all=1#ss_part_9060