Академический Документы
Профессиональный Документы
Культура Документы
Sous Windows XP, cliquez sur : Menu Démarrer → Programmes → Commandes MS-Dos
Sous Windows Vista / 7, cliquez sur : Menu Démarrer → Tous les programmes → Accessoires →
Invite de commandes
Un fichier batch (script bat) est un fichier contenant des instructions DOS. Ces instructions sont
executées l'une après l'autre. Des commandes permettent également de définir des conditions, des
boucles, etc...
Commande Description
call Appeler un second fichier de commandes
choice Utiliser pour les menus (interaction avec l'utilisateur)
echo Afficher du texte
for Définir une boucle
goto Aller jusqu'à un label
if Tester une condition
:label Définir un label
pause Suspendre l'exécution du programme
rem Commentaire (ou "::")
Les fichiers (scripts) batchs peuvent utiliser des paramètres (de %1 jusqu'à %9).
Exemple(s)
Fichier test.bat:
@echo off
echo Affichage du contenu d'un fichier
if exist %1 type %1
pause
test.bat nom_dun_fichier_dans_le_meme_repertoire
Le contenu du fichier "nom_dun_fichier_dans_le_meme_repertoire" sera affiché dans l'invite de
commandes. sous windows, vous pouvez aussi glisser/déposer un fichier (contenant du texte) sur
l'icône test.bat
Les commandes ms-dos (copy, del, format, xcopy, dir, etc...) peuvent être utilisé dans les fichiers
batch.
Vous trouverez ci-dessous, une liste non exhaustive des principales commandes sous Ms-Dos.
Pour info, cette liste provient de la commande help, exécutée dans une invite de commandes
(sous Windows XP).
Vous trouverez les explications pour chaque commande sur les 3 pages suivantes : commande
de A à D, de E à M, de N à Z.
Commandes Description
ASSOC Affiche les applications associées aux extensions de fichiers.
AT Planifie l'exécution de commandes ou programmes sur un ordinateur.
ATTRIB Affiche ou modifie les attributs d'un fichier.
BREAK Active ou désactive le contrôle étendu de CTRL+C.
CACLS Affiche ou modifie les listes de controles d'accès aux fichiers.
CALL Appelle un fichier de commandes depuis un autre fichier de commandes.
CD Modifie le répertoire ou affiche le répertoire en cours.
CHCP Modifie la page de code active ou affiche son numéro.
CHDIR Modifie le répertoire ou affiche le nom du répertoire en cours.
CHKDSK Vérifie un disque et affiche un relevé d'état.
CHKNTFS Affiche ou modifie la vérification du disque au démarrage.
CLS Efface l'écran.
CMD Lance une nouvelle fenêtre ms-dos.
COLOR Modifie les couleurs du premier et de l'arrière plan.
COMP Compare les contenus de deux fichiers.
COMPACT Modifie ou affiche la compression des fichiers sur une partition NTFS.
CONVERT Convertit des volumes FAT en volumes NTFS.
COPY Copie un ou plusieurs fichiers.
DATE Affiche ou modifie la date.
DEL Supprime un ou plusieurs fichiers.
DIR Affiche la liste des fichiers du répertoire.
DISKCOMP Compare les contenus de deux disquettes.
DISKCOPY Copie le contenu d'une disquette sur une autre.
DOSKEY Permet de créer des macros, affiche l'historique des commandes.
ECHO Affiche des messages.
Stoppe la localisation des modifications de l'environnement dans un fichier de
ENDLOCAL
commandes.
ERASE Supprime un ou plusieurs fichiers.
EXIT Quitte l'interpréteur de commandes (CMD.EXE).
FC Compare deux fichiers ou groupes de fichiers, et affiche les différences entre eux.
FIND Cherche une chaine de caractères dans un fichiers.
FINDSTR Cherche des chaines de caractères dans un fichiers.
FOR Exécute une commande sur chaque fichier d'un groupe de fichiers.
FORMAT Formate un disque.
FTYPE Affiche ou modifie les types de fichiers utilisés dans les associations d'extensions.
Poursuit l'exécution d'un fichier de commandes à une ligne identifiée par une
GOTO
étiquette (:NOM).
GRAFTABL Permet à Windows d'afficher un jeu de caractères en mode graphique.
IF Effectue un traitement conditionnel dans un fichier de commandes.
LABEL Crée, modifie ou supprime le nom de volume d'un disque.
MD Crée un répertoire.
MODE Configure un périphérique du système.
MORE Affiche la sortie écran par écran.
MOVE Déplace des fichiers d'un répertoire à un autre.
PATH Affiche ou définit le chemin de recherche des fichiers exécutables.
PAUSE Interrompt l'exécution d'un fichier de commandes et affiche un message.
POPD Restaure la valeur précédente du répertoire courant enregistré par PUSHD.
PRINT Imprime un fichier texte.
PROMPT Modifie l'invite de commande de Windows.
PUSHD Enregistre le répertoire courant puis le modifie.
RD Supprime un répertoire.
RECOVER Récupère l'information lisible d'un disque défectueux.
REM Insère un commentaire.
REN Renomme un ou plusieurs fichiers.
REPLACE Remplace des fichiers.
RMDIR Supprime un répertoire.
SET Affiche, définit ou supprime des variables d'environnement Windows.
Commence la localisation des changements de l'environnement dans un fichier de
SETLOCAL
commandes.
SHIFT Modifie la position des paramètres remplaçables dans un fichier de commandes.
SORT Trie les éléments en entrée.
SUBST Affecte une lettre de lecteur à un chemin d'accès.
START Lance une fenêtre pour l'exécution du programme ou de la commande.
TIME Affiche ou définit l'heure de l'horloge interne du système.
TITLE Définit le titre de la fenêtre pour une session CMD.EXE.
TREE Représente graphiquement l'arborescence d'un lecteur ou d'un chemin.
TYPE Affiche le contenu d'un fichier texte.
VER Affiche le numéro de version de Windows.
Indique à Windows s'il doit ou non vérifier que les fichiers sont écrits correctement
VERIFY
sur un disque donné.
VOL Affiche le nom et le numéro de série du volume.
XCOPY Copie des fichiers et des arborescences de répertoires.
Vous trouverez les explications pour chaque commande de la liste sur ces 3 pages : de A à D, de E
à M, de N à Z.
Ces commandes ont été testées sous Windows XP, il peut y avoir des options supplémentaires sous
Windows Vista et Seven.
ASSOC
ATTRIB
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[lect:] [chemin] fichier]
[/S [/D]]
+ Définit un attribut.
- Efface un attribut.
R Attribut de fichier en lecture seule.
A Attribut de fichier archive.
S Attribut de fichier système.
H Attribut de fichier caché.
[lect:][chemin][fichier] Spécifie le ou les fichiers que ATTRIB doit traiter.
/S Traite les fichiers dans le dossier courant et dans tous les sous-dossiers.
/D Traite aussi les dossiers.
AT
BREAK
CACLS
CACLS nom_de_fichier [/T] [/E] [/C] [/G util:perm] [/R util [...]]
[/P util:perm [...]] [/D util [...]]
CALL
CD
CD [/D] [lecteur:][chemin]
CD
CHCP
CHCP [nnn]
CHDIR
CHKDSK
Vérifie un disque et affiche un relevé d'état.
CHKNTFS
CLS
Efface l'écran.
CLS
CMD
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] chaîne]
COLOR
COLOR [attr]
Informations complémentaires
0 Noir 8 Gris
1 Bleu foncé 9 Bleu clair
2 Vert A Vert clair
3 Bleu-gris B Cyan
4 Marron C Rouge
5 Pourpre D Rose
6 Kaki E Jaune
7 Gris clair F Blanc
COMP
COMP [donnée1] [donnée2] [/D] [/A] [/L] [/N=nombre] [/C] [/OFF [LINE]]
COMPACT
COMPACT [/C | /U] [/rep]] [/A] [/I] [/F] [/Q] [nom_de_fichier [...]]
COPY
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [cible [/A | /B]]
DATE
DATE [date]
DEL
Supprime un ou plusieurs fichiers.
DIR
DISKCOMP
DISKCOPY
DOSKEY
Flèches HAUT/BAS rappellent les commandes ; ECHAP efface la ligne ; F7 affiche l'historique ;
ALT+F7 efface l'historique ; F8 recherche dans l'historique ; F9 choisit une commande par son
nombre ; ALT+F10 efface les déf. de macros.
Les codes spéciaux suivants s'utilisent pour définir les macros Doskey :
$T : Séparateur de commande. Autorise plusieurs commandes dans une macro.
$1-$9 : Paramètres de batch. Comme %1-%9 dans les programmes de commandes.
$* : Equivaut à tout ce qui suit le nom de macro sur la ligne de commande.
Vous trouverez les explications pour chaque commande de la liste sur ces 3 pages : de A à D, de E
à M, de N à Z.
Ces commandes ont été testées sous Windows XP, il peut y avoir des options supplémentaires sous
Windows Vista et Seven.
ECHO
ENDLOCAL
ENDLOCAL
ERASE
EXIT
FC
Compare deux fichiers ou groupes de fichiers, et affiche les différences entre eux.
FIND
FINDSTR
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:fichier] [/C:chaîne] [/G:fichier] [/D:liste de répertoires]
[/A:attributs de couleur] [chaînes]
[[lecteur:][chemin]nom de fichier[ ...]]
FOR
FORMAT
Formate un disque.
Affiche ou modifie les types de fichiers utilisés dans les associations d'extensions.
FTYPE [TypeFichier[=[CommandeOuverture]]]
GOTO
Poursuit l'exécution d'un fichier de commandes à une ligne identifiée par une étiquette (:NOM).
GOTO nom
nom Chaîne utilisée en tant que nom dans le programme de commandes. (commence par ':')
GRAFTABL
GRAFTABL [xxx]
GRAFTABL /STATUS
IF
Informations complémentaires
La clause ELSE doit être sur la même ligne que la commande suivant IF.
IF EXIST nomfichier. (
del nomfichier.
) ELSE (
echo nomfichier. introuvable.
)
LABEL
LABEL [lecteur:][nom_volume]
LABEL [/MP] [volume] [nom_volume]
MD
Crée un répertoire.
MKDIR [lecteur:]chemin
MD [lecteur:]chemin
MODE
Configure un périphérique du système.
Rediriger l'impression
MODE LPTn[:]=COMm[:]
MORE
MOVE
Vous trouverez les explications pour chaque commande de la liste sur ces 3 pages : de A à D, de E
à M, de N à Z.
Ces commandes ont été testées sous Windows XP, il peut y avoir des options supplémentaires sous
Windows Vista et Seven.
PATH
PATH [[lecteur:]chemin[;...][;%PATH%]
PATH ;
PAUSE
PAUSE
POPD
POPD
PROMPT [texte]
PUSHD
RD
Supprime un répertoire.
Supprime tous les répertoires et les fichiers dans le répertoire spécifié en plus du répertoire lui-
/S même.
Utilisé pour supprimer une arborescence.
Mode silencieux, ne demande pas de confirmation pour supprimer une arborescence de
/Q
répertoires avec /S.
RECOVER
RECOVER [lecteur:][chemin]nom_de_fichier
REM
Insère un commentaire.
REM [commentaire]
REN
REPLACE
RMDIR
Supprime un répertoire.
Supprime tous les répertoires et les fichiers dans le répertoire spécifié en plus du répertoire lui-
/S même.
Utilisé pour supprimer une arborescence.
Mode silencieux, ne demande pas de confirmation pour supprimer une arborescence de
/Q
répertoires avec /S.
SET
Affiche, définit ou supprime des variables d'environnement Windows.
SET [variable=[chaîne]]
SETLOCAL
SETLOCAL
SHIFT
SHIFT [/n]
SORT
START
TIME
TITLE
TITLE [chaîne]
TREE
TYPE
TYPE [lecteur:][chemin]nom_de_fichier
VER
VER
VERIFY
Indique à Windows s'il doit ou non vérifier que les fichiers sont écrits correctement sur un disque
donné.
VOL
VOL [lecteur:]
XCOPY
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:fich1[+fich2][+fich3]...]
En utilisant des caractères spécifiques, il est possible d'afficher des bordures lors de l'exécution
d'un script bat dans une invite de commandes.
Vous trouverez ci-dessous la liste des caractères permettant d'afficher les bordures.
Caractère Explication
Í Bordure horizontale
º Bordure verticale
É Coin supérieur gauche
È Coin inférieur gauche
» Coin supérieur droit
¼ Coin inférieur droit
Exemple
@echo off
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Exemple º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
pause
Par exemple : La phrase "Si le fruit est une pomme alors afficher Pomme sinon afficher Inconnu"
peut s'écrire de cette façon :
La commande goto
La commande goto permet d'exécuter une partie du programme, indiquée par un label.
La syntaxe est la suivante :
:label1
goto eof
:label2
...
:eof
Exemple
@echo off
set /p optionMenu="Choix? "
if "%optionMenu%"=="1" goto choix1
if "%optionMenu%"=="2" goto choix2
:choix1
echo 1
pause
goto eof
:choix2
echo 2
pause
goto eof
:eof
La commande for permet d'effectuer des boucles sur un ensemble d'éléments (chiffres, fichiers
etc...)
Voici la syntaxe :
Note : Utilisation de '%%' car nous sommes dans le cadre d'un fichier batch.
@echo off
for %%f in (*.zip) do (
echo Copie de %%f...
copy "%%f" c:backup
)
pause
• Compte à rebours
@echo off
echo Début du compte à rebours
for %%v in (5 4 3 2 1) do (
echo %%v
)
echo Fin du compte à rebours
pause
La syntaxe est :
Les variables %1, %2, ... %9 permettent de récupérer les arguments, du premier au neuvième,
dans votre programme.
A noter que %0 contient le nom de votre programme et %* permet d'avoir l'ensemble des
arguments.
Exemple
@echo off
echo Nom du programme : %0
echo Ensemble des arguments : %*
echo Argument 1 : %1
echo Argument 2 : %2
echo Argument 3 : %3
echo Argument 4 : %4
echo Argument 5 : %5
echo Argument 6 : %6
echo Argument 7 : %7
echo Argument 8 : %8
echo Argument 9 : %9
pause
Si vous avez besoin d'utiliser plus de 9 arguments, vous pouvez utiliser la commande shift, qui
permet de faire un 'décalage' sur les arguments (remplace %0 par %1, puis %1 par %2, etc...)
@echo off
rem Boucle avec un goto pour afficher les variables.
:continue
if "%1"=="" goto fin
echo %1
shift
goto continue
:fin
Pour déclarer et affecter une valeur à une variable, il faut utiliser la commande set.
Note : Il ne faut pas confondre les variables avec les arguments de la ligne de commande.
set variable=valeur
Lors de l'utilisation d'une variable, le nom doit être entouré du symbole "%".
echo %variable%
La commande set permet une interaction avec l'utilisateur afin d'effectuer une saisie de valeur.
Opérations mathématiques
La commande set avec le paramètre /a permet d'effectuer une opération mathématique sur une
variable. Il est possible grâce à cette commande d'incrémenter ou décrémenter une variable, ou
d'effectuer une division ou une multiplication.
set /a variable=%variable%+1
set /a compteur+=1
Plusieurs solutions existent pour afficher la date et l'heure courante dans un script batch.
Vous trouverez sur cette page une première solution (parmi d'autres) pour afficher ces données.
En utilisant cette première solution, vous apprendrez également à manipuler les chaînes de
caractères, mais le principal défaut est que vous ne pouvez pas l'utiliser pour créer un fichier (voir
plus bas pour plus d'explications)
Exemple
@echo off
echo Date du jour : %date%
echo Heure courante : %time%
%nom_variable:~positionDepart,nombreCaracteres%
Exemple
echo %date:~6,4%%date:~3,2%%date:~0,2%
Explications :
Chaîne de caractères 0 8 / 0 4 / 2 0 1 1
Position 0123456789
echo %time:~0,2%%time:~3,2%%time:~6,2%
Explications :
Chaîne de caractères 2 3 : 1 5 : 0 0
Position 01234567
Attention, lorsque l'heure est inférieure à 10, %time:~0,2% affiche un espace avant l'heure.
Vous ne pouvez donc pas utiliser cette solution si vous souhaitez récupérer la date et l'heure pour
nommer un fichier (log de sauvegarde, etc...). Utilisez la solution ci-dessous pour palier à ce
problème.
Retrouvez la partie 2 de ce tutoriel sur la page : Afficher la date et l'heure dans un script batch
(partie 2)
Plusieurs solutions existent pour afficher la date et l'heure courante dans un script batch.
Vous trouverez sur cette page la deuxième solution (parmi d'autres) pour afficher ces données.
En combinant la boucle for et la commande date ou time, vous pouvez également récupérer la date
et l'heure.
@echo off
for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set maDate=%%c%%b%%a
echo Date : %maDate%
Date : 20131003
Explications :
En utilisant la syntaxe précédente, vous pouvez bien sur récupérer les données séparément :
@echo off
for /f "delims=/ tokens=1,2,3" %%a in ('date /t') do set jour=%%a
for /f "delims=/ tokens=1,2,3" %%a in ('date /t') do set mois=%%b
for /f "delims=/ tokens=1,2,3" %%a in ('date /t') do set annee=%%c
echo Jour : %jour%
echo Mois : %mois%
echo Annee : %annee%
Jour : 03
Mois : 10
Annee : 2013
Toujours avec cette syntaxe, vous pouvez récupérer l'heure courante. Contrairement à la solution
1, l'espace ne sera pas ajouté pour les heures inférieures à 10. Vous pouvez donc utiliser cette
solution pour créer un nom de fichier contenant la date et l'heure :
@echo off
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set heure=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set minute=%%b
echo Heure : %heure%
echo Minute : %minute%
Heure : 19
Minute : 42
Explications :