Вы находитесь на странице: 1из 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 >) :
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.
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 :
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.
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:\ ?
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.
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 :


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.
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.
 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.
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é


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).
 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.

Вам также может понравиться