invite de commande - commandes dos de basemhidi.mustapha.free.fr/le dos - batch.pdf · invite de...

13
Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération de maintenance ou corriger un problème sur l'ordinateur, nous sommes amenés à lancer des commandes via une fenêtre noire appelée invite de commande. Cette fiche explique comment ouvrir une invite de commande (prompt DOS) et donne des explications sur les principales commandes pouvant être exécutées par ce biais. Invite de commande L'invite de commande (en anglais prompt) est un outil permettant de lancer directement des commandes systèmes sur Windows. Pour ouvrir cet outil, il suffit de cliquer sur le menu démarrer, de taper cmd et de cliquer sur cmd.exe. Idéalement, il est conseillé de cliquer avec le bouton droit sur l'icône "cmd" et de choisir "exécuter en tant qu'administrateur", afin de s'assurer d'avoir les droits nécessaires pour exécuter les commandes que l'on va saisir. L'invite de commande (prompt DOS) s'affiche alors, sous forme d'une fenêtre noire affichant le chemin du répertoire courant (c:\Windows\System32 s'il est lancé en tant qu'administrateur), suivi d'un chevron (signe >) :

Upload: others

Post on 09-May-2020

12 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Invite de commande - Commandes DOS de base

Régulièrement, afin de réaliser une opération de maintenance ou corriger un problème sur l'ordinateur, nous sommes amenés à lancer des commandes via une fenêtre noire appelée invite de commande. Cette fiche explique comment ouvrir une invite de commande (prompt DOS) et donne des explications sur les principales commandes pouvant être exécutées par ce biais.

Invite de commande

L'invite de commande (en anglais prompt) est un outil permettant de lancer directement des commandes systèmes sur Windows. Pour ouvrir cet outil, il suffit de cliquer sur le menu démarrer, de taper cmd et de cliquer sur cmd.exe. Idéalement, il est conseillé de cliquer avec le bouton droit sur l'icône "cmd" et de choisir "exécuter en tant qu'administrateur", afin de s'assurer d'avoir les droits nécessaires pour exécuter les commandes que l'on va saisir.

L'invite de commande (prompt DOS) s'affiche alors, sous forme d'une fenêtre noire affichant le chemin du répertoire courant (c:\Windows\System32 s'il est lancé en tant qu'administrateur), suivi d'un chevron (signe >) :

Page 2: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Commandes MS-DOS

Pour obtenir plus d'informations sur ces commandes, tapez le nom de votre commande suivi de /? (dir /?, copy /? etc...) ou tout simplement HELP suivi du nom de la commande, par exemple HELP COPY . Dans la majorité des cas, une page d'aide s'affiche.

La commande DIR La commande la plus utilisée du DOS est la commande DIR. Elle permet d'afficher à l'écran la liste des fichiers d'un disque. Pour voir une liste de fichier, tapez DIR à la suite de l'indicatif du DOS puis appuyez sur Entrée. C:\>DIR Pour que l'ordinateur fasse une pause pendant le défilement de la liste tapez : C:\>DIR / P Pour avoir seulement une liste des noms des fichiers triés en colonne, tapez : C:\>DIR / W Utilisez le joker pour chercher des fichiers précis : Le joker * sert à masquer un groupe de caractère dans un fichier. Par exemple pour trouver tous les fichiers commençant par n, tapez : DIR N* Lire ce que contient un fichier La commande à utiliser pour voir ce que contient un fichier s'appelle TYPE. C:\>TYPE NOMFICH.EXT Par exemple pour voir le contenu du fichier lisez.moi tapez C:\>TYPE LISEZ.MOI Suivi de la touche Entrée. Pour faire une pause entre chaque écran, tapez : C:\>TYPE LISEZ.MOI | MORE (la barre verticale s'obtient par la combinaison [ALT]+[6].

Comment changer de répertoire Pour passer à un autre répertoire du disque, il faut utiliser la commande CD suivie du nom du répertoire.

Page 3: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

C:\>CD WINDOWS Pour passer dans la racine du disque, tapez C:\>CD \ Pour revenir au répertoire précédent, tapez CD.. C:\>CD.. La touche F3 Pour rappeler la dernière commande tapée, appuyez sur la touche F3 Copier un fichier La commande COPY sert à copier un fichier Elle s'utilise de cette façon : C:\>COPY source destination Par exemple pour copier le fichier autoexec.bat dans le répertoire WINDOWS, tapez : C:\>COPY AUTOEXEC.BAT C:\WINDOWS On peut se servir du joker pour copier plusieurs fichiers en même temps. Voir La commande DIR. Déplacer un fichier move <source> <destination> move permet de déplacer un fichier <source> vers un fichier <destination>.

Supprimer un fichier Pour supprimer un fichier, il faut utiliser la commande DEL C:\>DEL source Par exemple pour supprimer tous les fichiers commençant par un A, tapez : C:\>DEL A* Faites attention à ne pas supprimer n'importe quels fichiers! Renomer un fichier La commande REN du Dos vous permet de renommer un fichier. Le contenu et la position du fichier sur le disque ne change pas : seul son nom change. Pour renommer le fichier AAAAA.doc en BBBBB.doc, il faut taper : C:\>REN AAAA.doc BBBB.doc Il faut mettre le nom actuel, suivi d'un espace et du nom futur. Si le fichier ne se trouve pas dans le répertoire courant, il suffit de taper son chemin d'accès. Par exemple si le fichier AAAA.doc se situe dans le répertoire C:\WORD, il faut tapez : C:\>REN C:\WORD\AAAA.doc BBBB.doc Vous pouvez utiliser le Joker pour renommer plusieurs fichiers en même temps. (Cf La commande DIR) Formater une clé USB Pour formater il faut utiliser la commande FORMAT Pour formater le disque A: tapez :

Page 4: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

C:\>FORMAT A: Pour effectuer un formatage rapide tapez : C:\>FORMAT A:/Q Editer un fichier Pour éditer un fichier quelconque, utilisez la commande EDIT. Pour cela tapez : C:\>EDIT chemin\nomdufichier Vous obtiendrez alors l'éditeur du Dos :

Pour éditer le fichier AAAA.doc du répertoire C:\WORD, tapez : C:\>EDIT C:\WORD\AAAA.doc CLS Utile pour nettoyer l'écran DOS. EXIT Permet de quitter un terminal DOS. TREE Affichage Arborescence (Arbre) chkdsk Permet de vérifier les erreurs sur le système de fichier. À savoir : peut être utilisé avec l'option /f pour corriger les erreurs (Nécessite un redémarrage de la machine après confirmation O).

Ping www.nomd'unsiteweb.com ----> Permet d'envoyer des requêtes ping sur des adresses IP ou des noms de domaines.

Tracert www.nomd'unsiteweb.com ----> Permet de déterminer l'itinéraire parcouru de vous à des adresses IP ou des noms de domaines.

Vol C: ---> Permet de donner le nom du volume (disque dur) et le N° de série de celui-ci (Remplacer C: par celle du lecteur de votre choix).

Title EtLeTitreQuiVousplaît ----> Permet de changer le titre de la fenêtre MS-DOS en cours.

Echo LeTexteQueVousVoulez ----> Affiche du texte à l'écran

Shutdown avec les paramètres : r ----> Permet de redémarrer le système. s ----> Permet de mettre le système hors-tension.

Page 5: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

p ----> Permet de mettre l'ordinateur Hors-tension sans le délai habituel. (Pour Vista et Seven). h ----> Mettre l'ordinateur local en veille prolongée.

rundll32.exe user32.dll,LockWorkStation ----> Verrouille l'ordinateur local.

tasklist ----> Permet de voir tous les processus lancés et leurs PID.

Time ----> Permet de voir et modifier l'heure système.

systeminfo ----> Donne des informations physiques et logicielles sur la configuration de la machine.

Print adressedufichiertexte ----> Imprime un fichier texte ou une photo. Rentrer l'adresse du fichier comme : print C:windowsphoto.jpg

Exercice Créer un dossier à la racine de votre disque les dossiers suivant :

AD_Automobile, Audi, Citroen, Compta, Ford, Peugeot, Renault et à l'intérieur du dossier AD_Automobile un second dossier nommé Lille.

Exercice Commandes MS-DOS

1-Donner la commande qui permet d’afficher le contenu d’un répertoire.

2-Donner la commande qui permet de créer un dossier.

3-Donner la commande qui permet de copier un fichier vers un répertoire donné.

4-Que fait la commande suivante : ren art1 art2 ?

5-Que fait la commande suivante : copy *.* D:\ ?

Page 6: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Correction :

1-La commande est : dir (chemin du répertoire)

2-La commande est : md (nom du dossier)

3-La commande est : copy (nom du fichier) (répertoire concerné)

4-Cette commande permet de renommer le fichier art1 en art2. 5-Cette commande permet de copy tous les fichiers du répertoire courant dans la partition D du disque dur.

Page 7: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

BAT !

Qu'est-ce qu'un fichier batch ? Un fichier batch porte avant tout l'extension .bat ou .cmd.

C'est en fait une ligne (ou ensemble de lignes) de commande ms-dos "codée" sous forme de fichier

texte dont on a changé l'extension. Ensuite l'ouverture de ce fichier exécutera les commandes écrites

dans ce fichier.

Créer un fichier batch vierge

En effet celui-ci sera la base de toutes les commandes que nous allons développer plus loin !

Faites un clic droit sur le Bureau --> Nouveau--> Document texte ; Ouvrir ce fichier et le renommer en .bat ou .cmd ; Exemple :

Ensuite pour ouvrir ce fichier et le modifier faites un clic droit dessus :

Page 8: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Créer son fichier batch

Il suffit simplement d'ouvrir votre fichier batch vierge et de "composer" des commandes comme une

salade composée en fait :

Un fichier Batch n'est rien de plus qu'un fichier texte contenant des commandes MS-DOS, et possédant le suffixe ".bat". La programmation Batch nécessite une connaissance minimum de l'environnement DOS. Un fichier Batch est une suite de commandes que vous pourriez taper sous DOS, chaque nouvelle ligne du fichier correspondant à une nouvelle commande. Néanmoins, certaines commandes ne sont qu'utilisables dans les fichiers batch du fait de leur inutilité dans l'environnement de commande DOS. C’est très utile s’il faut répéter toujours la même série de commandes. Exemple : cd \ cd games superjeu.exe Cela aurait le même effet que si vous tapiez sous DOS les commandes suivantes : C:\Chemin> cd \ [Entrée] C:\> cd games [Entrée] C:\games> superjeu.exe [Entrée] L'intérêt du batch est d'automatiser des tâches répétitives effectuées sous DOS. Les fichiers batch sont donc très faciles à créer puisqu'un simple éditeur texte suffit. Les fichiers batch peuvent également utiliser toutes les commandes DOS, ce qui rend disponible pour le programmeur un grand nombre de fonctions. Enfin, leur taille est relativement légère par rapport à d'autres programmes, ce qui facilite leur "transferts" sur différents disques et supports de stockage.

Page 9: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Exemple commenté d'un fichier de commande

@Echo off Cls Echo Coucou, c'est moi. Pause Ver

La première ligne est indispensable. Elle indique à l'interpréteur de ne pas afficher sur l'écran les commandes qui vont être exécutées. Cela permet une transparence du traitement. Vous pouvez l'enlever ou bien la mettre en remarque en insérant "REM" devant "@Echo off" pour rétablir l'affichage des commande exécuter. La deuxième ligne efface l'écran ; rien d'extraordinaire. Ensuite, nous affichons un message à l'écran avec la commande "ECHO" puis nous attendons l'appui d'une touche. Et pour terminer, nous affichons la version du DOS.

Echo, et @

La commande "Echo" permet d'affiche à l'écran une ligne de texte. Il s’agit "d’une ligne", car une fois le texte affiché, il y a automatiquement un retour à la ligne : c'est-à-dire, que deux commandes "echo" à la suite, afficherons deux lignes l'une en dessous de l'autre. La commande "echo" permet aussi d'informer l’interpréteur de commande que nous ne désirons pas qu'il affiche les lignes du programme BATCH. La commande "@" permet d'informer l'interpréteur que la ligne ne doit pas être affiché à l'écran, même si la commande "echo" est sur "on".

Syntaxe : "Echo off" pour ne pas affiché les lignes du fichier de commande. La commande "echo" est sur "on" par défaut.

REM, Remarque

Dans un fichier de commande, vous pouvez insérer des commentaires, grâce à la commande interne "REM".

Break

La commande interne "Break" autorise (ou non) l'utilisateur d'interrompre un fichier de commande avec les touches d'interruption "CTRL-C" ou "CTRL-BREAK".

Syntaxe : "Break ON/OFF"

Les paramètres (arguments)

Un fichier BATCH peut avoir plein de paramètres, à concurrence de 127 caractères sur la ligne de saisie. Dans le fichier, nous ne pouvons accéder qu'à dix paramètres à la fois avec les variables argument %0, %1, %2, %3, ... , %9. La variable %0 représente à l'origine, le nom du fichier BATCH, ou plus précisément la saisie au prompt du nom avec le chemin tapé. Pour atteindre les autres paramètres, nous devrons utiliser la commande interne "SHIFT", qui permet de cycler les paramètres. Ainsi, le contenu de la variable %1 sera positionné dans la variable %0, ..., le contenu de %9 dans %8, et ainsi, le paramètre suivant qui n'était pas accessible sera placé dans %9.

Page 10: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Les variables

Avec la commande interne "SET", vous pouvez définir et affecter des variables textes. Ces variables sont conservées tant qu'elles ne sont pas effacées, même après la fin d'un fichier BATCH. Ce ne sont pas des variables locales au fichier de commande, mais bien des variables globales. Exemple : "SET V=M??E.*" définit et affecte la variable texte "V" de la valeur "M??E.*". Pour changer de valeur, il suffi d'affecter de nouveau la variable : "SET V=LO*.*". Puis, pour effacer la variable, il suffira d'affecter une valeur vide : "SET V=".

Une fois cette variable définie, nous pouvons accéder à son contenu en utilisant son nom entre deux caractères pour-cent : "Echo %V%" affiche le contenu de la variable "V".

Attention. Il existe d'autres variables qui sont utilisées en locale ; elles sont du format "%i" ou "%%i", cela dépend de interpréteur, et de sa version. On les trouve dans les boucles "FOR" par exemple (défini plus loin). J'ai pris "i" comme exemple ; vous pouvez utilisez un autre nom.

Label / branchement

Un label est un marqueur désignant une ligne dans un fichier de commande. Un label est utilisé de pair avec la commande de branchement « GOTO ». Un label commence par un caractère deux points, suivit d’un nom. Exemple :

@Echo Off … … Goto L1 … … :L1 … …

Lorsque l’interpréteur rencontre la commande « GOTO L1 », il poursuit sont interprétation après la ligne désignée par le label (il saute au label).

Test

Un test, c’est la possibilité d’exécuter un traitement si le résultat comparant deux éléments est vérifié. Il est engendré par la commande « IF » dont voici ces paramètres et sa structure :

IF [NOT] ERRORLEVEL nombre commande IF [NOT] chaîne1==chaîne2 commande IF [NOT] EXIST fichier commande

NOT Spécifie que interpréteur exécute la commande seulement si la condition est fausse

ERRORLEVEL nombre Condition vraie si le dernier programme exécuté a renvoyé un code de sortie supérieur ou égal au nombre spécifié.

Commande Commande à exécuter si la condition est satisfaite.

Chaîne1==chaîne2 Condition vraie si les chaînes spécifiées concordent.

EXIST fichier Condition vraie si le fichier spécifié existe.

Page 11: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Exemple de code :

@echo off IF « %1 »== » » GOTO Err Echo Le paramètre est : « %1 » Goto Fin :Err Echo Entrez un paramètre. :Fin

Boucle

Une boucle, c’est la possibilité de répéter plusieurs fois une opération sur un élément d’un ensemble définit. Souvent, l’ensemble est défini avec les noms de fichier, mais il peut aussi être du texte, voir des paramètres. Cette boucle est engendrée par la commande « FOR » dont voici la syntaxe :

FOR %variable IN (ensemble) DO commande [paramètre]

%variable Paramètre remplaçable.

(ensemble) Ensemble de fichiers séparés par des espaces. Caractères génériques permis.

Commande Commande à exécuter pour chaque fichier.

Paramètre Paramètres ou commutateurs pour la commande spécifiée.

Pour utiliser FOR dans les fichiers de commandes, spécifiez %%variable au lieu de %variable.

Exemple compliqué : recherche la localisation de lui-même (le fichier BATCH) sur les disques du système. Nous admettrons que l’utilisateur saisisse au prompt seulement le nom du fichier de commandes.

Set DD_OLI= For %%i in (C D E F G) do If « %DD_OLI% »== » » If exist %%i :\BATCH\%0.BAT SET DD_OLI=%%i

J’initialise à vide la variable DD_OLI, au cas où elle existerait déjà. Puis, je recherche successivement dans les disques durs la présence du fichier de commande (moi-même, vu par le fichier). Dès que je me trouve, j’affecte la variable DD_OLI du nom de l’unité dans lequel je me suis trouvé. — Il est possible que je trouve un fichier portant le même nom que moi, sans pour cela que se soit moi ! Certes, mais sur mon propre ordinateur, j’évite autant que je peux, d’avoir des fichiers de commande portant le même nom. Pourquoi rechercher la localisation du fichier de commande ? parce que ce disque est amovible, et qu’il peut porter n’importe quelle lettre de lecteur, lorsqu’il est inséré dans un autre ordinateur. – Une fois le fichier de commande trouvé, la variable DD_OLI est affecté. Dès lors, le test d’existence ne sera plus effectué car DD_OLI n’est plus vide. Comme il n’est pas possible de quitter la boucle, j’utilise un test sur le contenu de la variable. S’il était possible de quitter la boucle, j’aurai plutôt écris un truc du genre :

For %%i in (C D E F G) do If exist %%i :\BATCH\%0.BAT GOTO Trouvé

Page 12: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Call

Dans un fichier BATCH, on peut désirer faire traiter une opération par un autre fichier de commande déjà existant. Pour cela, nous utiliserons la commande interne "CALL" suivie du nom du fichier de commande. Si nous omettons cette commande, le fichier BATCH ainsi appelé interrompt automatiquement l'exécution de l'appelant. C'est-à-dire, que la commande "CALL" informe l'interpréteur d’exécuter un BATCH comme étant un sous-programme. Sinon, l’appelle sera interprété comme étant un branchement conditionnel ou un saut (goto) dans un nouveau programme.

Pause

La commande "PAUSE" affiche un message à l'écran, jusqu'à ce que l'utilisateur appui sur une touche. Il est possible de ne pas affiché le message, en le détournant avec un filtre, vers une sortie nulle : "PAUSE >NUL", attends l'appui d'une touche, sans afficher le message. L'information sur ce sujet sera donnée dans le paragraphe des filtres.

Choice / ErrorLevel

Le programme "CHOICE", intégré dans le MS-DOS depuis la version 5.x (je pense), permet à un utilisateur de concevoir un menu dans un fichier BATCH. Ce programme retourne un code de sortie de programme (code d'erreur, plus précisément) suivant la touche enfoncée. Il est désolant de remarquer l'ajout de ce programme, or qu'il aurait sûrement été plus intelligent de faire évoluer la commande "PAUSE" dans ce sens, vu qu'elle ne prend actuellement aucun paramètre dans l'interpréteur MS-DOS (ce qui n'est pas forcément le cas dans d'autres interpréteurs). Pour gérer ces codes de retour, la commande "IF" possède une instruction spécifique : "ErrorLevel". Cette instruction est vérifiée, si le code d'erreur retourné par le dernier programme exécuté est supérieur ou égal à la valeur spécifié. Un exemple sera sûrement plus parlant.

@Echo Off :Menu Cls Echo 1) Idos 2) EdiPage Choice /C:12² /N Quel programme voulez vous lancer [² pour quitter]: If ErrorLevel 3 Goto Fin If ErrorLevel 2 goto l2 If ErrorLevel 1 goto l1 Goto Menu :L1 C:\OUTILS\IDOS Goto Menu :L2 C:\OUTILS\EdiPage Goto Menu :Fin

D'après la documentation Microsoft, "CHOICE" retourne un "ErrorLevel 0" à la suite d'une interruption par les touches de contrôle CTRL-C ou CTRL-BREAK. Après essai, il semble que "CHOICE" retourne l'erreur 255 (de même, lorsqu'une erreur se produit).

Page 13: Invite de commande - Commandes DOS de basemhidi.mustapha.free.fr/Le DOS - BATCH.pdf · Invite de commande - Commandes DOS de base Régulièrement, afin de réaliser une opération

Exemple utile

Ajouter un chemin à la variable "PATH", pour la recherche de programme exécutable.

@echo off If "%1"="" GOTO Err Set PATH=%1;%PATH% Goto Fin :Err Echo %0 [nouveau chemin de recherche] :Fin

Ressources !

Marc Stern propose de nombreux didacticiels à partir de son site Internet : http://xset.tripod.com.

http://www.jsiinc.com

http://www.commandline.co.uk/index.html.

D'excellents scripts sont également visibles à partir de cette adresse :

www.uwasa.fi/~ts/http/http2.html#batch.