Vous êtes sur la page 1sur 34

BATCH : INTRODUCTION AU SCRIPT BATCH

Comment accéder à la console Ms-Dos ?

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

Vous pouvez également utiliser le raccourci Windows+R, puis la commande cmd.

Les fichiers Batchs

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

Lancez ce fichier avec la syntaxe suivante :

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

Commande MS-Dos dans fichiers bat

Les commandes ms-dos (copy, del, format, xcopy, dir, etc...) peuvent être utilisé dans les fichiers
batch.

BATCH : LISTE DES COMMANDES MSDOS

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.

Syntaxe générale pour une commande MS-Dos

La syntaxe pour exécuter une commande est la suivante :

commande [paramètre1] [paramètre2] options

Listes des principales commandes MS-DOS

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.

BATCH : DETAILS DES COMMANDES MS-DOS DE A A D

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

Affiche les applications associées aux extensions de fichiers.

ASSOC [.ext[=[Type du fichier]]]

.ext Spécifie l'extension de fichier avec laquelle associer le type


Type_de_fichier Spécifie le type de fichier à associer avec l'extension

ATTRIB

Affiche ou modifie les attributs d'un fichier.

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

Planifie l'exécution de commandes ou programmes sur un ordinateur.

AT [ordinateur] [ [id] [/DELETE] | /DELETE [/YES]]


AT [ordinateur] heure [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "commande"

Spécifie un ordinateur distant.


ordinateur
Les commandes sont planifiées sur l'ordinateur local si ce paramètre est omis.
id Identificateur (nombre) affecté à une commande planifiée.
Supprime une commande planifiée.
/DELETE
Si id est omis, toutes les commandes sur l'ordinateur sont supprimées.
/YES Utilisée pour supprimer toutes les tâches sans demande de confirmation.
heure Heure de l'exécution de la commande.
Permet au travail d'interagir avec le bureau de l'utilisateur
/INTERACTIVE
qui est connecté au moment où le travail est effectué.
Exécute la commande tous les jours spécifiés de la semaine ou du mois.
/EVERY:date[,...]
Si la date est omise, le jour en cours du mois est utilisé par défaut.
Exécute la commande lors de la prochaine occurrence du jour (par exemple,
/NEXT:date[,...] jeudi prochain).
Si la date est omise, le jour en cours du mois est utilisé par défaut.
"commande" Commande Windows NT, ou programme de commandes à exécuter.

BREAK

Active ou désactive le contrôle étendu de CTRL+C.

CACLS

Affiche ou modifie les listes de contrôles d'accès aux fichiers.

CACLS nom_de_fichier [/T] [/E] [/C] [/G util:perm] [/R util [...]]
[/P util:perm [...]] [/D util [...]]

nom_de_fichier Affiche les ACL.


Modifie les ACL des fichiers spécifiés dans le répertoire en cours et tous les sous-
/T
répertoires.
/E Edite l'ACL au lieu de la remplacer.
/C Continue la modification des ACL en ignorant les erreurs.
Donne à l'utilisateur spécifié les droits d'accès.
Perm peut être :
/G util:perm
- R : Lecture
- W : Ecriture
- C : Modification (en écriture)
- F : Contrôle total
/R util Continue la modification des ACL en ignorant les erreurs.
Remplace les droits d'accès de l'utilisateur spécifié.
Perm peut être :
- N : Aucun
/P util:perm - R : Lecture
- W : Ecriture
- C : Modification (en écriture)
- F : Contrôle total
/D util Refuse l'accès à l'utilisateur spécifié.

CALL

Appelle un fichier de commandes depuis un autre fichier de commandes.

CALL [lecteur:] [chemin] nom_de_fichier [paramètres de commande]

paramètres de commande Paramètres requis par le programme de commandes appelé.

CD

Modifie le répertoire ou affiche le nom du répertoire en cours.

CD [/D] [lecteur:][chemin]
CD

CHCP

Modifie la page de code active ou affiche son numéro.

CHCP [nnn]

CHDIR

Modifie le répertoire ou affiche le nom du répertoire en cours.

CHDIR [/D] [lecteur:][chemin]


CHDIR

CHKDSK
Vérifie un disque et affiche un relevé d'état.

CHKDSK [volume[[chemin]nom_de_fichier]] [/F] [/V] [/R] [/B] [/L[:taille]]

Spécifie la lettre de lecteur (suivie de deux-points), le point de montage ou le nom


volume
de volume.
nom_de_fichier FAT/FAT32 seulement : Spécifie les fichiers dont la fragmentation est à vérifier.
/F Corrige les erreurs sur le disque.
FAT/FAT32 : affiche les chemin d'accès et nom complets de tous les fichiers du
/V disque.
Sur NTFS : affiche également les éventuels messages de nettoyage.
/R Localise les secteurs défectueux et récupère informations lisibles. (implique /F)
NTFS seulement : change la taille du fichier journal en la valeur spécifiée en kilo-
/L:taille octets.
Si aucune taille n'est donnée, affiche la taille actuelle.
Force le démontage préalable du volume si nécessaire.
/X
Les handles ouverts vers le volume ne seront alors plus valides (implique /F).
/I NTFS seulement : vérifie sommairement les entrées d'index.
NTFS seulement : ignore la vérification des cycles à l'intérieur de l'arborescence de
/C
dossiers.

CHKNTFS

Affiche ou modifie la vérification du disque au démarrage.

CHKNTFS volume [...]


CHKNTFS /D
CHKNTFS /T[:durée]
CHKNTFS /X volume [...]
CHKNTFS /C volume [...]

Spécifie la lettre de lecteur (suivie de deux-points), le point de montage ou le nom de


volume
volume.
Restaure le comportement par défaut de l'ordinateur.
/D Tous les lecteurs sont vérifiés au démarrage et CHKDSK est exécuté pour ceux dont
l'intégrité est incertaine.
Indique la durée du compte à rebours du démarrage de AUTOCHK avec le temps spécifié
/T:durée en secondes.
Si la durée n'est pas spécifiée, affiche le paramètre en cours.
Exclut un lecteur de la vérification par défaut au démarrage.
/X
Les lecteurs exclus ne sont pas accumulés entre les appels de commande.
Vérifie le lecteur spécifié au démarrage ; CHKDSK s'exécutera si l'intégrité du lecteur est
/C
incertaine.

CLS

Efface l'écran.
CLS

CMD

Lance une nouvelle fenêtre ms-dos.

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] chaîne]

/C Exécute la commande donnée par la chaîne de caractères puis se termine


/K Exécute la commande donnée par la chaîne de caractères puis reste actif
/S Modifie le traitement de la chaîne après /C ou /K
/Q Exécute (sans interactions) la commande donnée puis reste actif
/D Désactive l'exécution de AutoRun à partir du Registre
/A Redirige la sortie de commandes internes vers un canal ou un fichier ANSI
/U Redirige la sortie de commandes internes vers un canal ou un fichier UNICODE
/T:fg,bg Change la couleur du premier ou de l'arrière plan (voir aussi COLOR /?)
/F:ON Active les caractères de fin des noms de fichiers et de répertoires
/F:OFF Désactive les caractères de fin des noms de fichiers et de répertoires
Active l'expansion retardée des variables d'environnement en utilisant ! comme
délimitation.
/V:ON Par exemple, /V:ON permet à !var! de développer la variable var à l'exécution.
La syntaxe var développe les variables lorsqu'elles sont entrées,
ce qui est différent lorsque utilisé à l'intérieur d'une boucle FOR.
/V:OFF Désactive l'expansion retardée des variables d'environnement.

COLOR

Modifie les couleurs du premier et de l'arrière plan.

COLOR [attr]

Informations complémentaires

Les attributs de couleurs (attr) sont spécifiés par 2 chiffres hexadécimaux.


Le premier correspond à l'arrière plan, le second au premier plan.
Chaque chiffre peut prendre n'importe quelle de ces valeurs :

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

Compare les contenus de deux fichiers.

COMP [donnée1] [donnée2] [/D] [/A] [/L] [/N=nombre] [/C] [/OFF [LINE]]

donnée1 Spécifie endroit et noms des premiers fichiers à comparer.


donnée2 Spécifie endroit et noms des deuxièmes fichiers à comparer.
/D Affiche les différences sous forme décimale.
/A Affiche les différences sous forme de caractères ASCII.
/L Affiche les numéros de ligne des différences.
/N=nombre Compare seulement 'nombre' premières lignes dans chaque fichier.
/C Ignore la casse des lettres ASCII en comparant des fichiers.
/OFF[LINE] Ne pas ignorer les fichiers dont l'attribut hors connexion a été réglé.

COMPACT

Modifie ou affiche la compression des fichiers sur une partition NTFS.

COMPACT [/C | /U] [/rep]] [/A] [/I] [/F] [/Q] [nom_de_fichier [...]]

Compresse les fichiers spécifiés.


/C Les répertoires seront marqués pour que les fichiers ajoutés plus tard soient
compressés.
Décompresse les fichiers spécifiés.
/U Les répertoires seront marqués pour que les fichiers ajoutés plus tard ne soient
pas compressés.
Effectue l'opération spécifiée sur les fichiers correspondants dans le répertoire
donné
/S
et tous les sous-répertoires.
Le répertoire par défaut est le répertoire en cours.
Affiche les fichiers avec les attributs Caché ou Système.
/A
Ces fichiers sont omis par défaut.
Continue d'effectuer l'opération spécifiée même après que des erreurs se soient
/I produites.
Par défaut, COMPACT s'arrête lorsqu'une erreur se produit.
Force l'opération de compression sur tous les fichiers spécifiés,
/F même sur ceux qui ont déjà été compressés.
Les fichiers déjà compressés sont ignorés par défaut.
/Q Ne reporte que les informations essentielles.
nom_de_fichier Spécifie un modèle, un fichier, ou un répertoire.
CONVERT

Convertit des volumes FAT en volumes NTFS.

CONVERT Volume /FS:NTFS [/V] /CvtArea:Nom_Fichier]] [/NoSecurity] [/X]

Spécifie la lettre de lecteur (suivie de deux-points), le point de montage ou


Volume
le nom de volume.
/FS:NTFS Spécifie que le volume doit être converti en NTFS.
/V Spécifie que CONVERT doit être exécuté en mode documenté.
Défini un fichier contigu dans le répertoire racine pour recevoir les fichiers
/CvtArea:Nom_Fichier
système NTFS.
Spécifie les fichiers convertis et les paramètres de sécurité de répertoires
/NoSecurity
accessibles par tout le monde.
Force le volume à être démonté d'abord si nécessaire.
/X
Tous les handles ouverts vers le volume ne seront plus valides.

COPY

Copie un ou plusieurs fichiers.

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [cible [/A | /B]]

source Fichier(s) à copier.


/A Indique un fichier texte ASCII.
/B Indique un fichier binaire.
/D Permet au fichier cible d'être créé sans être codé
cible Répertoire et/ou nom de fichier cible.
/V Vérifie l'écriture du ou des fichiers cible.
Utilise un nom de fichier court, s'il est disponible, lors de la copie d'un fichier ayant un nom
/N
supérieur à 8.3 caract.
/Y Supprime la confirmation de remplacement d'un fichier cible existant.
/-Y Demande une confirmation pour remplacer un fichier cible existant.
/Z Copie les fichiers réseau en mode redémarrage.

DATE

Affiche ou modifie la date.

DATE [date]

DEL
Supprime un ou plusieurs fichiers.

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms


ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms

Spécifie une liste d'un ou plusieurs fichiers ou répertoires.


noms Les caractères génériques peuvent être utilisés pour supprimer plusieurs fichiers.
Si un répertoire est spécifié, tous les fichiers qu'il contient seront supprimés.
/P Demande une confirmation avant de supprimer un fichier.
/F Force la suppression de fichiers en lecture seule.
/S Supprime les fichiers dans tous les sous-répertoires.
/Q Pas de confirmation avant suppression avec car. génériques.
/A Suppression en fonction des attributs
R : Fichiers en lecture seule
S : Fichiers système
attributs H : Fichiers cachés
A : Fichiers prêts pour archive
- : Préfixe de négation

DIR

Affiche la liste des fichiers du répertoire.

DIR [lect:][chemin][nom_de_fichier] [/A[[:]attributs]] [/B] [/C] [/D] [/L] DIR [/N]


[/O[[:]tri]] [/P] [/Q] [/S] [/T[[:]heure]] [/W] [/X] [/4]

[lect:][chemin][nom_de_fichier] Spécifie le lecteur, le répertoire et/ou fichiers à lister.


/A Affiche les fichiers dotés des attributs spécifiés.
D Répertoires
R Lecture seule
H Caché
attributs
A Archive
S Système
- Préfixe de négation
/B Utilise le format abrégé (noms des fichiers).
Affiche le séparateur de milliers pour les tailles de fichiers.
/C
Utilisez /-C pour désactiver l'affichage du séparateur.
/D Sur cinq colonnes avec fichiers triés par colonne.
/L Affiche en minuscules.
Nouveau format longue liste o— les noms de fichiers sont à
/N
droite.
/O Affiche les fichiers selon un tri spécifié.
N : Nom (alphabétique) S : Taille (ordre croissant)
E : Extension (alphabétique)
tri D : Date et heure (chronologique)
G : Répertoires en tête
- Préfixe en ordre indirect
/P Arrêt après l'affichage d'un écran d'informations.
/Q Affiche le nom du propriétaire du fichier.
/S Affiche les fichiers d'un répertoire et de ses sous-répertoires.
/T Contrôle le champ heure affiché ou utilisé dans le tri.
C : Création
heure A : Dernier accès
W : Dernière écriture
/W Affichage sur cinq colonnes.
Affiche les noms courts générés pour les noms de fichier non 8.3
/X
car.
/4 Affiche l'année sur quatre chiffres.

DISKCOMP

Compare les contenus de deux disquettes.

DISKCOMP [lecteur1: [lecteur2:]]

DISKCOPY

Copie le contenu d'une disquette sur une autre.

DISKCOPY [lecteur1: [lecteur2:]] [/V]

/V Vérifie que les informations sont copiées correctement.

DOSKEY

Permet de créer des macros, affiche l'historique des commandes.

DOSKEY [/REINSTALL] [/LISTSIZE=taille] [/MACROS[:ALL | :nom_d'exe]]


[/HISTORY] [/INSERT | /OVERSTRIKE] [/EXENAME=nom_d'exe]
[/MACROFILE=nom_de_fichier] [nom_de_macro=[texte]]

/REINSTALL Installe une nouvelle copie de Doskey.


/LISTSIZE=taille Définit la taille du tampon d'historique des commandes
/MACROS Affiche toutes les macros de Doskey.
/MACROS:ALL Affiche toutes les macros de Doskey de tous les exécutables qui en ont.
/MACROS:nom_d'exe Affiche toutes les macros de Doskey d'un exécutable.
/HISTORY Affiche toutes les commandes stockées dans la mémoire.
/INSERT Insertion dans l'ancien texte du nouveau texte entré.
/OVERSTRIKE Spécifie que le nouveau texte remplace l'ancien.
/EXENAME=nom_d'exe Spécifie l'exécutable.
/MACROFILE=nom_de_fic Spécifie un fichier de macros à installer.
nom_de_macro Spécifie un nom pour une macro que vous créez.
texte Spécifie des commandes que vous voulez enregistrer.
Informations complémentaires

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.

BATCH : DETAILS DES COMMANDES MS-DOS DE E A M

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

Affiche des messages.

ECHO [ON | OFF]


ECHO [message]

ENDLOCAL

Stoppe la localisation des modifications de l'environnement dans un fichier de commandes.

ENDLOCAL

ERASE

Supprime un ou plusieurs fichiers.

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms


ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms
Spécifie une liste d'un ou plusieurs fichiers ou répertoires.
noms Les caractères génériques peuvent être utilisés pour supprimer plusieurs fichiers.
Si un répertoire est spécifié, tous les fichiers qu'il contient seront supprimés.
/P Demande une confirmation avant de supprimer un fichier.
/F Force la suppression de fichiers en lecture seule.
/S Supprime les fichiers dans tous les sous-répertoires.
/Q Pas de confirmation avant suppression avec car. génériques.
/A Suppression en fonction des attributs
R : Fichiers en lecture seule
S : Fichiers système
attributs H : Fichiers cachés
A : Fichiers prêts pour archive
- : Préfixe de négation

EXIT

Quitte l'interpréteur de commandes (CMD.EXE).

EXIT [/B] [CodeSortie]

/B Spécifie la sortie du fichier script en cours au lieu de CMD.EXE.


CodeSortie Spécifie un nombre. Si /B est utilisé, le paramètre ERRORLEVEL est fixé à ce nombre.

FC

Compare deux fichiers ou groupes de fichiers, et affiche les différences entre eux.

FC [/A] [/C] [/L] [/LBn] [/N][/OFF[LINE]][/T] [/U] [/W] [/nnnn]


[lect1:][chemin1]fichier1 [lect2:][chemin2]fichier2
/B [lect1:][chemin1]fichier1 [lect2:][chemin2]fichier2

/A Affiche la 1ère et dernière ligne de chaque ensemble de différences.


/B Effectue une comparaison binaire.
/C Ignore la casse.
/L Compare les fichiers en tant que texte ASCII.
Définit le nombre maximal de différences consécutives comme égal au
/LBn
nombre de lignes spécifié.
/N Affiche les numéros de ligne pour une comparaison ASCII.
/OFF[LINE] Ne pas ignorer les fichiers dont l'attribut hors connexion a été réglé.
/T Ne convertit pas les tabulations en espaces.
/U Compare les fichiers en tant que fichiers texte UNICODE.
/W Comprime les blancs (tabulations et espaces) pour la comparaison.
Spécifie le nombre de lignes consécutives qui doivent correspondre après
/nnnn
une différence.
[lect1:][chemin1]fichier1 Spécifie le premier fichier ou ensemble de fichiers à comparer.
[lect2:][chemin2]fichier2 Spécifie le second fichier ou ensemble de fichiers à comparer.

FIND

Cherche une chaine de caractères dans un fichiers.

FIND [/V] [/C] [/N] [/I][/OFF[LINE]] "chaîne" [[lecteur:][chemin]nom_de_fichier[


...]]

/V Affiche toutes les lignes ne contenant pas la chaîne spécifiée.


/C Affiche seulement le nombre de lignes contenant la chaîne.
/N Affiche les numéros de ligne avec les lignes affichées.
/I Ignore la casse lors de la recherche de la chaîne.
Ne pas ignorer les fichiers dont l'attribut hors connexion a été
/OFF[LINE]
réglé.
"chaîne" Spécifie la chaîne de texte à trouver.
[lecteur:][chemin]nom_de_fichier Spécifie un ou des fichiers pour la recherche.

FINDSTR

Cherche des chaines de caractères dans un fichiers.

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[ ...]]

/B Recherche l'élément s'il est en début de ligne.


/E Recherche l'élément s'il est en fin de ligne.
/L Recherche les chaînes littéralement.
/R Recherche les chaînes en tant qu'expressions.
Recherche les fichiers correspondants dans le répertoire actif et dans
/S
tous ses sous-répertoires.
/I Spécifie que la recherche ne doit pas tenir compte de la casse.
/X Affiche les lignes correspondant parfaitement.
/V N'affiche que les lignes non correspondantes.
/N Affiche le numéro de ligne devant chaque ligne correspondante.
Affiche uniquement le nom des fichiers contenant des chaînes
/M
correspondantes.
Affiche le décalage des caractères pour chaque ligne
/O
correspondante.
/P Ignore les fichiers ne contenant pas de caractères affichables.
/OFFLINE Ne pas ignorer les fichiers dont l'attribut hors connexion a été réglé.
Spécifie l'attribut de couleur avec 2 chiffres hexadécimaux. Entrez
/A:attr
"color /?".
/F:fichier Lit la liste des fichiers dans le fichier spécifié (/ pour la console).
/C:chaîne Recherche la chaîne spécifiée littéralement.
Obtient les chaînes à rechercher à partir du fichier spécifié (/ pour la
/G:fichier
console).
Recherche dans une liste de répertoires délimitée par des points-
/D:rép
virgules.
chaînes Chaînes à rechercher.
[lecteur:][chemin]nom de
Spécifie les fichiers dans lesquels effectuer la recherche.
fichier

FOR

Exécute une commande sur chaque fichier d'un groupe de fichiers.

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

%variable Spécifie un paramètre remplaçable par une seule lettre.


(ensemble) Ensemble de fichiers. Caractères génériques autorisés.
commande Commande à exécuter pour chaque fichier.
paramètres Liste des paramètres ou des options pour la commande spécifiée.

FORMAT

Formate un disque.

FORMAT volume [/FS:sys_fich] [/V:nom_volume] [/Q] [/A:taille] [/C] [/X]


FORMAT volume [/V:nom_volume] [/Q] [/F:taille]
FORMAT volume [/V:nom_volume][/Q][/T:pistes /N:secteurs]
FORMAT volume [/V:nom_volume][/Q]
FORMAT volume [/Q]

Spécifie la lettre de lecteur (suivie de deux-points), le point de montage ou le


volume
nom de volume.
/FS:sys_fich Spécifie le type de système de fichiers (FAT, FAT32 ou NTFS).
/V:nom_de_volume Spécifie le nom de volume.
/Q Effectue un formatage rapide.
NTFS uniquement : Les fichiers créés sur le nouveau volume seront
/C
compressés par défaut.
Force le volume à être démonté d'abord si nécessaire.
/X
Tous les descripteurs ouverts sur le volume ne seront plus valides.
Remplace la taille d'unité d'allocation par défaut.
/A:taille Les paramètres par défaut sont très fortement recommandés dans le cas
général.
/F:taille Spécifie la taille de la disquette à formater (1.44)
/T:pistes Spécifie le nombre de pistes par face de disque.
/N:secteurs Spécifie le nombre de secteurs par piste.
FTYPE

Affiche ou modifie les types de fichiers utilisés dans les associations d'extensions.

FTYPE [TypeFichier[=[CommandeOuverture]]]

TypeFichier Spécifie le type de fichier à examiner ou à modifier


Spécifie la commande d'ouverture à utiliser lors du démarrage des fichiers
CommandeOuverture
de ce type.

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

Permet à Windows d'afficher un jeu de caractères en mode graphique.

GRAFTABL [xxx]
GRAFTABL /STATUS

xxx Numéro page de code.


/STATUS Page de code utilisée.

IF

Effectue un traitement conditionnel dans un fichier de commandes.

IF [NOT] ERRORLEVEL nombre commande


IF [NOT] chaîne1==chaîne2 commande
IF [NOT] EXIST nom_de_fichier commande

Indique que Windows XP n'effectue la commande que si la condition est


NOT
fausse.
ERRORLEVEL Condition vraie si le dernier programme exécuté a retourné un code sortie
nombre supérieur/égal au nombre donné.
commande Spécifie la commande à exécuter si la condition est satisfaite.
chaîne1==chaîne2 Condition vraie si les chaînes spécifiées sont identiques.
EXIST
Condition vraie si le nom de fichier donné existe.
nom_de_fichier
Spécifie la commande à exécuter si la condition est vérifiée.
commande
Commande peut être suivi de la commande ELSE.

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

La commande doit être terminée par une nouvelle ligne.


La commande ELSE doit être sur la même ligne que la fin de la commande IF.

IF EXIST nomfichier. (del nomfichier.) ELSE echo nomfichier. introuvable

LABEL

Crée, modifie ou supprime le nom de volume d'un disque.

LABEL [lecteur:][nom_volume]
LABEL [/MP] [volume] [nom_volume]

lecteur: Spécifie la lettre d'un lecteur.


nom_volume Spécifie le nom du volume.
Spécifie si 'volume' doit être traité comme un point de montage (MP) ou comme un
/MP
nom de volume.
Spécifie la lettre de lecteur (suivie de deux-points), le point de montage ou le nom
volume de volume.
Si un nom de volume est spécifié, le commutateur /MP n'est pas nécessaire.

MD

Crée un répertoire.

MKDIR [lecteur:]chemin
MD [lecteur:]chemin

MODE
Configure un périphérique du système.

Etat d'un périphérique

MODE [périphérique] [/STATUS]

Rediriger l'impression

MODE LPTn[:]=COMm[:]

MORE

Affiche la sortie écran par écran.

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [lect:][chemin]fichier


nom_de_commande | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
MORE /E [/C] [/P] [/S] [/Tn] [+n] [fichiers]

[lect:][chemin]fichier Spécifie un fichier à afficher écran par écran.


nom_de_commande Spécifie une commande dont la sortie sera affichée.
/E Active les fonctionnalités étendues
/C Efface l'écran avant d'afficher une page
/P Développe les caractères de saut de page
/S Regroupe plusieurs lignes vides en une seule ligne
/Tn Transforme les tabulations en n espaces (par défaut, 8)
+n Commence à afficher le premier fichier à la ligne n
Liste des fichiers à afficher. Les fichiers dans la liste sont séparés par des
fichiers
blancs.

MOVE

Déplace des fichiers d'un répertoire à un autre.

MOVE [/Y | /-Y] [lecteur:][chemin]fichier1[,...] destination


MOVE [/Y | /-Y] [lecteur:][chemin]répert1 répertoire2

Spécifie l'emplacement et le nom du ou des fichiers que vous voulez


[lecteur:][chemin]fichier1
déplacer.
Spécifie le nouvel emplacement du fichier.
Destination peut être une lettre de lecteur et deux-points (:), un nom
destination de répertoire, ou une combinaison.
Si vous déplacez un seul fichier, vous pouvez aussi inclure un nom de
fichier si vous voulez renommer le fichier en le déplaçant.
[lecteur:][chemin]répert1 Spécifie le répertoire que vous voulez renommer.
répert2 Spécifie le nouveau nom du répertoire.
Supprime la demande de confirmation de remplacement de fichiers de
/Y
destination existants.
Provoque la demande de confirmation de remplacement de fichiers de
/-Y
destination existants.

BATCH : DETAILS DES COMMANDES MS-DOS DE N A Z

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

Affiche ou définit le chemin de recherche des fichiers exécutables.

PATH [[lecteur:]chemin[;...][;%PATH%]
PATH ;

PAUSE

Interrompt l'exécution d'un fichier de commandes et affiche un message.

PAUSE

POPD

Restaure la valeur précédente du répertoire courant enregistré par PUSHD.

POPD

PRINT

Imprime un fichier texte.

PRINT [/D:périphérique] [[lecteur:][chemin]nom_de_fichier[...]]

/D:périphérique Spécifie un périphérique d'impression.


PROMPT

Modifie l'invite de commande de Windows.

PROMPT [texte]

texte spécifie une nouvelle invite.

PUSHD

Enregistre le répertoire courant puis le modifie.

PUSHD [chemin | ..]

chemin Répertoire permettant de définir le répertoire en cours.

RD

Supprime un répertoire.

RMDIR [/S] [/Q] [lecteur:]chemin


RD [/S] [/Q] [lecteur:]chemin

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

Récupère l'information lisible d'un disque défectueux.

RECOVER [lecteur:][chemin]nom_de_fichier

REM

Insère un commentaire.

REM [commentaire]
REN

Renomme un ou plusieurs fichiers.

RENAME [lecteur:][chemin]nom_de_fichier1 nom_de_fichier2.


REN [lecteur:][chemin]nom_de_fichier1 nom_de_fichier2.

REPLACE

Remplace des fichiers.

REPLACE [lect1:][chemin1]fichier [lect2:][chemin2] [/A] [/P] [/R] [/W]


REPLACE [lect1:][chemin1]fichier [lect2:][chemin2] [/P] [/R] [/S] [/W] [/U]

[lect1:][chemin1]fichier Spécifie le ou les fichiers source.


[lect2:][chemin2] Spécifie le répertoire dont les fichiers sont à remplacer.
Ajoute nouveaux fichiers au répertoire destination.
/A
Inutilisable avec les commutateurs /S ou /U.
Demande confirmation avant de remplacer un fichier ou d'ajouter un
/P
fichier source.
/R Remplace les fichiers en lecture seule ainsi que les fichiers non protégés.
Remplace les fichiers dans tous les sous-répertoires du répertoire
/S destination.
Ne peut pas être utilisé avec le commutateur /A.
/W Attend insertion d'une disquette avant de commencer.
Remplace (met à jour) les fichiers plus anciens que les fichiers source.
/U
Inutilisable avec /A.

RMDIR

Supprime un répertoire.

RMDIR [/S] [/Q] [lecteur:]chemin


RD [/S] [/Q] [lecteur:]chemin

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]]

variable Nom de la variable d'environnement.


chaîne Chaîne de caractères à affecter à la variable.

SETLOCAL

Commence la localisation des changements de l'environnement dans un fichier de commandes.

SETLOCAL

SHIFT

Modifie la position des paramètres remplaçables dans un fichier de commandes.

SHIFT [/n]

SORT

Trie les éléments en entrée.

SORT [/R] [/+n] [/M kilo-octets] [/L locale] [/REC octets_enregistrement]


[[lecteur1:][chemin1]nom_fichier1] [/T [lecteur2:][chemin2]]
[/O [lecteur3:][chemin3]nom_fichier3]

Spécifie à partir de quel caractère, n, commencer chaque


comparaison.
/+3 indique que chaque comparaison doit commencer au 3ème
caractère de chaque ligne.
/+n
Les lignes de moins de n caractères sont révisées avant les
autres lignes.
Par défaut, les comparaisons commencent au premier caractère
de chaque ligne.
Remplace les paramètres régionaux par défaut du système avec
ceux spécifiés.
/L locale Les paramètres ""C"" donnent la séquence de révision la plus
rapide et sont actuellement le seul choix.
Le tri ne tient pas compte de la casse.
Spécifie la quantité en kilo-octets de mémoire principale à
utiliser pour le tri.
La taille mémoire ne peut jamais être inférieure à 160 kilo-
/M kilo-octets
octets.
Si la taille mémoire est spécifiée, la quantité exacte sera utilisée
pour le tri,
indépendamment de la quantité de mémoire principale
disponible.
Spécifie le nombre maximal de caractères dans un
/REC caractères
enregistrement (par défaut 4096, maximum 65535).
Inverse l'ordre de tri, c'est-à-dire, effectue le tri de Z à A, puis
/R
de 9 à 0.
Spécifie quel fichier trier. S'il n'est pas spécifié, c'est l'entrée
standard qui est triée.
[lecteur1:][chemin1]nom_fichier1
Spécifier le fichier d'entrée est plus rapide que de rediriger ce
fichier comme entrée standard.
Spécifie le chemin d'accès au répertoire dans lequel le tri doit
stocker ses données,
dans le cas où ces données ne peuvent être contenues dans la
/T [lecteur2:][chemin2]
mémoire principale.
Par défaut, c'est le répertoire temporaire du système qui est
utilisé.
Spécifie le fichier dans lequel l'entrée triée doit être stockée.
S'il n'est pas spécifié, les données sont écrites dans la sortie
/O [lect3 :][chem3]nom3 standard.
Spécifier le fichier de sortie est plus rapide que de rediriger la
sortie standard vers le même fichier.

START

Lance une fenêtre pour l'exécution du programme ou de la commande.

START ["titre"] [/D chemin] [/I] [/MIN] [/MAX] [SEPARATE]


[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [commande/programme]
[paramètres]

"titre" Titre à afficher dans la barre de titre.


chemin Répertoire de démarrage
/B Démarre l'application sans créer de nouvelle fenêtre.
Le nouvel environnement sera l'environnement initial passé à cmd.exe et non pas
/I
l'environnement en cours.
MIN Démarre la fenêtre réduite en icône
MAX Démarre la fenêtre en plein écran
SEPARATE Démarre le programme Windows 16-bits en espace mémoire séparé
SHARED Démarre le programme Windows 16-bits en espace mémoire partagé
LOW Démarre l'application dans la classe de priorité IDLE
NORMAL Démarre l'application dans la classe de priorité NORMAL
HIGH Démarre l'application dans la classe de priorité HIGH
REALTIME Démarre l'application dans la classe de priorité REALTIME
ABOVENORMAL Démarre l'application dans la classe de priorité ABOVENORMAL
BELOWNORMAL Démarre l'application dans la classe de priorité BELOWNORMAL
WAIT Démarre l'application et attend qu'elle se termine
com/prog Commande / Programme
paramètres Paramètres passés à la commande ou au programme
SUBST

Affecte une lettre de lecteur à un chemin d'accès.

SUBST [lect1: [lect2:]chemin]


SUBST lect1: /D

lect1: Lecteur virtuel auquel vous voulez affecter un chemin.


[lect2:]chemin Lecteur physique et chemin que vous voulez affecter à un lecteur virtuel.
/D Supprime un lecteur substitué (virtuel).

TIME

Affiche ou définit l'heure de l'horloge interne du système.

TIME [/T | heure]

TITLE

Définit le titre de la fenêtre pour une session CMD.EXE.

TITLE [chaîne]

chaîne Titre de la fenêtre DOS.

TREE

Représente graphiquement l'arborescence d'un lecteur ou d'un chemin.

TREE [lecteur:][chemin] [/F] [/A]

/F Affiche le nom des fichiers de chaque répertoire.


/A Utilise ASCII au lieu des caractères étendus.

TYPE

Affiche le contenu d'un fichier texte.

TYPE [lecteur:][chemin]nom_de_fichier
VER

Affiche le numéro de version de Windows.

VER

VERIFY

Indique à Windows s'il doit ou non vérifier que les fichiers sont écrits correctement sur un disque
donné.

VERIFY [ON | OFF]

VOL

Affiche le nom et le numéro de série du volume.

VOL [lecteur:]

XCOPY

Copie des fichiers et des arborescences de répertoires.

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]...]

source Spécifie le ou les fichiers à copier.


destination Spécifie l'emplacement et/ou le nom de nouveaux fichiers.
Copie uniquement les fichiers ayant l'attribut archive, ne
/A
modifie pas l'attribut.
Copie uniquement les fichiers ayant l'attribut archive, désactive
/M
l'attribut archive.
Copie les fichiers modifiés à partir de la date spécifiée.
/D : j-m-a Si aucune date n'est donnée, copie uniquement les fichiers dont
l'heure source est plus récente que l'heure de destination.
/EXCLUDE:fich1[+fich2][+fich3]... Spécifie une liste de fichiers contenant des chaînes.
Avertissement avant la création de chaque fichier de
/P
destination.
Copie les répertoires et sous-répertoires à l'exception des
/S
répertoires vides.
BATCH : DES BORDURES POUR VOS MENUS

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

BATCH : LES CONDITIONS

Il est possible d'utiliser les tests conditionnels avec la commande if (else).

En Français, cela correspond à "Si ... alors ... Sinon ..."

La syntaxe est la suivante :

if "condition"=="valeur" commande else commande

Par exemple : La phrase "Si le fruit est une pomme alors afficher Pomme sinon afficher Inconnu"
peut s'écrire de cette façon :

if fruit=="pomme" echo Pomme else echo Inconnu

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

BATCH : LES BOUCLES

La commande for permet d'effectuer des boucles sur un ensemble d'éléments (chiffres, fichiers
etc...)

Voici la syntaxe :

for %variable in (ensemble) do commande [paramètres]


Exemple(s)

• Copie tout les fichiers ZIP du répertoire dans le répertoire backup

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

• Boucle sur une série de valeurs


Il est possible avec la commande for et le commutateur /l (L minuscule) de boucler sur une série
de valeurs.
Syntaxe :

for /l %%v in (initialisation, pas, fin) do commande


Exemple

Afficher toutes les valeurs de 0 à 50

for /l %%v in (0, 1,50) do echo %%v

BATCH : LES ARGUMENTS

Il est possible de passer des arguments (paramètres) à un programme batch.

La syntaxe est :

votre_programme.bat mon_param1 mon_param2

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

BATCH : LES VARIABLES


Déclarer une variable

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.

La syntaxe pour affecter une valeur dans une variable est :

set variable=valeur

Utiliser une variable

Lors de l'utilisation d'une variable, le nom doit être entouré du symbole "%".

echo %variable%

Interaction avec l'utilisateur

La commande set permet une interaction avec l'utilisateur afin d'effectuer une saisie de valeur.

set /p variable_utilisateur="Message "

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

L'exemple ci-dessus correspond à un "variable++" en C/C++, JAVA, PHP, etc...


Il est aussi possible d'utiliser la syntaxe suivante :

set /a compteur+=1

BATCH : AFFICHER LA DATE ET L'HEURE DANS UN SCRIPT (PARTIE 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)

En utilisant la seconde solution, vous découvrirez la puissance de la boucle for !

Utiliser les variables %date% et %time%

Les variables %date% et %time% permettent de récupérer respectivement la date et l'heure


courante.

Exemple
@echo off
echo Date du jour : %date%
echo Heure courante : %time%

Le résultat de ce script est :

Date du jour : 03/10/2013


Heure courante : 18:30:24,45

• %date% renvoie la date du jour dans le format suivant : jj/mm/aaaa


• %time% renvoie l'heure courante dans le format suivant : hh:mm:ss,ms

Découper une chaîne de caractères

Pour découper une chaîne de caractères, il faut utiliser la syntaxe suivante :

%nom_variable:~positionDepart,nombreCaracteres%

Découper une date

Exemple

Affiche la date dans le format : aaaammjj à partir de la variable %date%

echo %date:~6,4%%date:~3,2%%date:~0,2%

Explications :

• %date:~6,4% : Afficher 4 caractères à partir de la position 6


• %date:~3,2% : Afficher 2 caractères à partir de la position 3
• %date:~0,2% : Afficher 2 caractères à partir de la position 0

Chaîne de caractères 0 8 / 0 4 / 2 0 1 1
Position 0123456789

L'exemple ci-dessus a comme résultat : 20110408.

Découper une heure

Il faut utiliser la même syntaxe que pour les dates :

echo %time:~0,2%%time:~3,2%%time:~6,2%

Explications :

• %time:~0,2% : Afficher 2 caractères à partir de la position 0


• %time:~3,2% : Afficher 2 caractères à partir de la position 3
• %time:~6,2% : Afficher 2 caractères à partir de la position 6

Chaîne de caractères 2 3 : 1 5 : 0 0
Position 01234567

La commande time renvoie l'heure courante dans le format suivant : (h)h:mm:ss,ms

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.

Solution 2 : utiliser la boucle for

Retrouvez la partie 2 de ce tutoriel sur la page : Afficher la date et l'heure dans un script batch
(partie 2)

BATCH : AFFICHER LA DATE ET L'HEURE DANS UN SCRIPT (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 utilisant la 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)

En utilisant cette seconde solution, vous découvrirez la puissance de la boucle for !


Utiliser la boucle for

En combinant la boucle for et la commande date ou time, vous pouvez également récupérer la date
et l'heure.

Récupérer la date complète dans une variable

Voici la syntaxe pour découper la date dans le format aaaammjj :

@echo off
for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set maDate=%%c%%b%%a
echo Date : %maDate%

Le résultat de ce script est :

Date : 20131003

Explications :

• date /t : Affiche la date avec le format suivant : jj/mm/aaaa


• delims=/ : Les séparateurs des "mots" sont le slash (/) et l'espace
• tokens=1,2,3: Récupère les "mots" en position 1, 2 et 3 qui seront respectivement %%a,
%%b et %%c

Récupérer le jour le mois et l'année dans des variables

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%

Le résultat de ce script est :

Jour : 03
Mois : 10
Annee : 2013

Récupérer l'heure complète dans une variable

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%

echo Test > fichier_%heure%%minute%.txt

Le résultat de ce script est :

Heure : 19
Minute : 42

Explications :

• time /t : Affiche l'heure avec le format suivant : hh:mm


• La dernière ligne va créer un fichier contenant le mot "Test" et son nom contiendra l'heure
courante au format hhmm

Vous aimerez peut-être aussi