Академический Документы
Профессиональный Документы
Культура Документы
Invite de commande
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*
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)
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 :
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.
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).
tasklist ----> Permet de voir tous les processus lancés et leurs PID.
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 :
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.
En effet celui-ci sera la base de toutes les commandes que nous allons développer plus loin !
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".
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
……
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 :
@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 :
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 :
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
@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.