-
Par ZebulonBof_27 le 11 Décembre 2008 à 20:35
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).
Il existe une autre commande que cd ayant le même effet : il s'agit de chdir ; enfin, personnellement, j'ai tendance à aller vers le plus court, ne vous étonnez donc pas si je marque partout cd au lieu de chdir .
Pour revenir un dossier en arrière, tapez tout simplement :
Code : Consolecd ..
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 : Consolecd \
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 : Consolecd c:\
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 : Consolecd leNomDuDossier
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 : Consolecd dossier
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").
DOS ne respecte pas la casse, c'est-à-dire que vous pouvez tout aussi bien entrer des majuscules que des minuscules, cela n'a pas d'importance : seules importent les lettres utilisées. Donc, pour la commande ci-dessus, j'aurais pu tout aussi bien écrire CD DOSSIER ou CD dossier, voire encore cD DoSsIeR .
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 : Consoledir
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".
1) Si vous regardez en haut de la liste, vous aurez toujours (sauf si vous vous trouvez directement sur la racine du disque) deux dossiers : un sera appelé ".", l'autre ".." . "..", vous l'avez deviné , il s'agit de notre dossier parent. "." est, quant à lui, le dossier courant (ici Dossier).
2) Il se peut, si vous utilisez une machine qui n'est pas des plus récentes (ou si vous avez une version ancienne de DOS), que vous rencontriez ceci :
NomDuFichierOuDuDossier~1.extensionDuFichierSiCenEstUn
dans la colonne de droite. Ne vous inquiétez pas : c'est normal. Il faut savoir qu'à l'origine, le nombre de caractères pour nommer un fichier ou un dossier était limité à 8... et ainsi, si votre fichier ou dossier en contient plus que ce nombre, DOS affiche les 6 premiers caractères puis ~1 (deux caractères)... vous devrez donc en déduire le nom complet de votre fichier ou dossier pour pouvoir l'utiliser... (d'ailleurs, sous Windows, quelle que soit votre version de DOS, cliquez droit sur un fichier ou dossier de plus de 8 caractères, puis sur Propriétés et regardez le nom MS-DOS : vous aurez le ~1).
3) Pour afficher le contenu d'un dossier autre que le dossier courant, entrez juste :
Code : Consoledir dossierDontVousSouhaitezAfficherLeContenu
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 : Consolecd dossier\sousDossier
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 : Consolecd truc\machin
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/caractereDuCommutateur
Et comme il complète une commande, ça donne :
Code : Consolecommande /caractereDuCommutateur
Ah ok... et pour répondre à ma question ?
Pour répondre à votre question, tapez dans votre invite de commandes :
Code : Consoledir /s
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 : Consoledir /p
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 : Consoledir /s /p
1) Vous n'êtes pas obligés de mettre des espaces entre chaque commutateur (dir /s/p) ; cependant, je vous recommande de les mettre : c'est toujours plus lisible.
2) L'ordre des commutateurs n'a pas d'importance : on aurait pu tout aussi bien placer le /p avant le /s ; ici, vous faites totalement selon votre humeur .
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 : Consolecd /d disque:
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 : Consolecd /d d:
Et voili !
Apparemment, il existe un raccourci qui permet de changer de disque : il suffit de marquer le nom du disque, tout seul :
Code : Consoled:
cd /d d:
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 : Consoletree
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.
Nous avons vu que "." était le dossier courant... eh bien, "." contient en fait aussi tout le chemin d'accès qui y mène... ainsi, le dossier "C:." n'est rien d'autre que votre dossier courant sur le disque C:, bah oui . D'ailleurs, pour tester, entrez comme commande cd . . Là, normal, vous verrez s'afficher la même chose qu'à la ligne juste au-dessus. Eh bien, cd C:. a le même effet, si tant est que vous vous trouviez sur le disque C:, voilà, voilà .
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 : Consoletree /f
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 : Consoletree /a
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.
Je crois que j'y reviendrai dans la seconde partie, l'historique est en fait bien plus puissant qu'il n'en a l'air .
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 : Consolehelp
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 : Consolehelp commandeDontVousSouhaitezObtenirPlusDinfos
et vous aurez des informations 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 : Consolehelp cd help dir help tree
et pour finir...
Code : Consolehelp help
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 : Consolecommande /?
et ça a le même effet que :
Code : Consolehelp commande
vous permettant ainsi d'économiser deux caractères .
Voyons maintenant de plus près ce que ça donne...
Code : Consoledir /?
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ébutHelp, "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 : Consolecls
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
- afficher la liste de toutes les commandes MS-DOS ainsi qu'un bref résumé de leur effet :Secret (cliquez pour afficher)
help
- obtenir de l'aide sur une commande précise :Secret (cliquez pour afficher)
"help commande" ou "commande /?"
Commande cls
- effacer l'écran :Secret (cliquez pour afficher)
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 : Consoledir /?
Citation : Image ci-dessusDIR [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 : Consoledir /-c
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 : Consoledir /-n
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 : Consolecommande /caractereDuCommutateur:paramètre(s)
Les paramètres possibles sont indiqués à côté du commutateur dans la rubrique d'aide.
Quelques exemples :
Code : Consoledir /o:g
Code : Consoledir /o:gn
Code : Consoledir /o:ng
Code : Consoledir /o:n
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 : Consoledir NomDuFichierOuDuDossier
Exemple
Je cherche à vérifier s'il n'y a pas un certain fichier.txt sur le disque C:.
Code : Consoledir fichier.txt
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 : Consoledir fichier.txt /s
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 : Consolecd \ 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 : Consoledir 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 : Consoledir 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 : Consoledir bonjour comment ça va.txt
Eh bien, pour qu'il n'y ait pas d'ambiguïté, les guillemets sont obligatoires :
Code : Consoledir "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 : Consoledir 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 : Consoledir \fichier.txt /s /a:h
Code : Consoledir \dossier /a:d /s
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 : Consoledir fichier /a:
/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 : Consoledir *haha.txt
Code : Consoledir hihi.*
Code : Consoledir hoho.*t*
Code : Consoledir *a*.*
Code : Consoledir \* /a:d /s
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 : Consoledir c?.txt
Code : Consoledir ?a?b?c?.?
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 : Consoledir ????.???
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 : Consolefind "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 : Consolefind "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 : Consolefind "texteARechercher" *
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 ).
1) En général, vous verrez le message "Accès refusé" pour les sous-dossiers...
2) Si vous vous demandez pourquoi donc, lorsque l'on recherche avec une astérisque dans le nom, dir ne va pas dans les sous-dossiers, je vous affirme que c'est aussi une excellente question ).
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 : Consolefindstr /c:"chaîne1" /c:"chaîne 2" etc... /d:dossier1;dossier2;dossier3... *
À noter, lorsqu'il ne s'agit que de mots à chercher, pas d'expressions, on peut retirer les commutateurs /c: et écrire tout simplement :
Code : Consolefindstr "mot1 mot2 mot3 ..." /d:dossier1;dossier2;dossier3... *
Voilà, si vous avez compris find, vous avez aussi compris findstr .
Si vous vous sentez délaissés, perdus, en manque d'images, que vous n'avez pas de fichiers sur lesquels tester ces deux commandes, ne vous inquiétez pas, l'exo comblera ce vide .
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 : Consolepause
... pour la pause.
Eh oui, en C, sous console, les commandes MS-DOS peuvent être utilisées directement par le biais de :
Code : C1
system("commandeMSDOS");
Enfin, quand vous tapez dir, ces deux lignes s'affichent aussi :
Code : Consolevol
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 : Consolemd nomDuDossier
Code : Consolemd 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 : Consoleedit
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 : Consoleedit /?
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 ).
Il existe aussi un homonyme de ren : rename... enfin, plus c'est court, mieux c'est .
Code : Consoleren 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 : Consoleren *.extension *.nouvelleExtension
Code : Consoleren nom.* nouveauNom.*
Allez, une petite illustration .
Passons maintenant à attrib :
Code : Consoleattrib
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é).
Notez la correspondance sur ce point entre dir et attrib : dir affiche les fichiers et dossiers du dossier courant mais du moment qu'ils ne sont ni cachés, ni des fichiers ou dossiers système. attrib, quant à lui, affichera TOUS les fichiers avec leur(s) attribut(s) mais ne touchera pas aux dossiers.
Pour qu'attrib vous affiche les attributs d'un dossier, il est nécessaire de spécifier son nom :
Code : Consoleattrib dossier(ouFichierAussiDailleurs)DontOnVeutConnaîtreLesAttributs
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 : Consoleattrib +ou-desTrucs nomDuFichierOuDuDossier
Exemple :
Code : Consoleattrib +H -S toto.txt
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 : Consoleattrib +H *
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 : Consoleattrib +h * /s
Code : Consoleattrib +h * /s /d
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 : Consolefichier.extension
Il existe néanmoins une commande pour lancer des fichiers ; il s'agit de start, cependant, il serait trop tôt d'en parler de suite .
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 : Consoletype fichier
Code : Consoletype fichier1 fichier2 fichier3...
1) Là aussi, il est possible d'utiliser un type *.
2) Pour votre plus grand bonheur et épanouissement personnel, testez donc type sur des fichiers de divers formats : .bmp, .avi, .mp3 etc., je vous garantis des surprises .
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 :
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 : Consoleprint fichier
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 : Consolefichier > LPT1
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 !
Simple précision : ici vous apprendrez à utiliser 4 commandes. Lorsque vous les utiliserez, en copiant par exemple un fichier sur un autre qui existe déjà, DOS vous demandera confirmation (et c'est bien normal - heureusement ) si vous voulez vraiment le remplacer. Il sera alors indiqué :
"Remplacer fichier.extension (Oui/Non/Tous) : "
Entrez "O" pour oui, "N" pour non et "T" pour tous (juste au cas où vous n'aviez pas tilté ).
Voyons maintenant ces quatre commandes.
Move
Déplacer... move in english.
Code : Consolemove 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 : Consolecopy 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 : Consolecopy dossierDontLesFichiersSontACopier dossierDeDestination
Avec copy, vous pouvez aussi spécifier comme destination... un fichier ! On en reparlera dans le seconde partie .
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 : Consolexcopy *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 : Consolexcopy 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 : ConsoleEst 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 : Consolereplace fichier dossier
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 : Consolereplace 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 : Consolereplace dossierDeMiseAJour\* dossierAMettreAJour /u /s
- rajouter uniquement les nouveaux fichiers non contenus dans le dossier à mettre à jour :Code : Consolereplace 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 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 : Consolerd dossier
Code : Consolerd dossier1 dossier2 dossier3 ...
Il faudra rajouter le commutateur /s pour qu'il supprime le dossier... et tout ce qu'il contient.
Code : Consolerd dossier /s
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 : Consoledel fichier
Code : Consoledel 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 : Consoleexit
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
votre commentaire
Suivre le flux RSS des articles de cette rubrique
Suivre le flux RSS des commentaires de cette rubrique