Exemples de fichiers .bat

Voici une série d'exercices de difficultés croissantes.
Les solutions sont proposées au bas de cette page.


Enoncés


Chiffre.Bat

Créer un fichier CHIFFRE.BAT qui prend un chiffre comme argument et l'affiche en toutes lettres.

Exemple:

C:\> Chiffre 7
Sept

[Solution]

Chiffres.Bat

Même exercice avec plusieurs arguments.

Exemple:

C:\> Chiffre 1 3 5
Un
Troix
Cinq

[Solution]

Save_A.bat

Le batch file Save_A.bat sauve sur la disquette A tous les fichiers du répertoire courant qui ont l'attibut archive. Ce fichier de commande mémorise la date et l'heure de la sauvegarde dans un fichier Histo.txt qui se trouve lui aussi sur la disquette A:

[Solution]

 SET  /A  variable="expression"

L'option "Assignation" est disponible depuis les extensions de commandes apparues depuis Windows NT. L'option /A permet d'évaluer une expression arithmétique ou logique pour en donner la valeur à une variable. Nous plaçons les expressions entre guillemets. Un nom de variable dans une expression représente sa valeur. Il ne faut donc plus dans ce cas placer les noms entre % .

Somme.Bat

Affiche la somme de tous les arguments de la commande

Exemple:

C:\> Somme 5 10 2
17

[Solution]

Max.Bat

Affiche le plus grand de tous les arguments

Exemple:

C:\> Max 5 20 18
20

[Solution]

 SET  /P  variable="invite"

L'option "Prompt" permet d'attribuer à une variable une valeur saisie par l'utilisateur.
La commande commence par afficher l'invite avant de lire l'entrée.

Bonjour.Bat

Demande le nom de l'utilisateur puis le salue en le nommant
Demande l'age de l'utilisateur et calcule les années qui lui reste avant la retraite.

Exemple:

C:\> Bonjour
Comment t'appelles-tu ? Tartempion
Bonjour Tartempion
Quel âge as-tu ? 28
Encore 37 ans de turbin avant la retraite!

[Solution]


Solutions


Chiffre.bat

@ECHO OFF
Rem     CHIFFRE.BAT
IF "%1"=="" GOTO  Usage
IF "%1"=="0" ECHO Zero
IF "%1"=="1" ECHO Un
If "%1"=="2" ECHO Deux
IF "%1"=="3" ECHO Trois
IF "%1"=="4" ECHO Quatre
IF "%1"=="5" ECHO Cinq
IF "%1"=="6" ECHO Six
IF "%1"=="7" ECHO Sept
IF "%1"=="8" ECHO Huit
IF "%1"=="9" ECHO Neuf
GOTO Fin
:Usage
ECHO Syntaxe: CHIFFRE n
ECHO          avec n = 0 à 9 
:Fin

Chiffres.bat

@ECHO OFF
:Boucle
  IF "%1"=="" GOTO Fin 
  CALL chiffre %1
  SHIFT
  GOTO Boucle
:Fin

Save.bat

@ECHO OFF
ECHO sauvegarde des derniers fichiers modifiés
DATE /t >> A:\Histo.txt
TIME /t >> A:Histo.txt
XCOPY *.* A: /m /y >> B:Histo.txt
ECHO -----------------------------------------
ECHO ----------------------------------------->> A:\Histo.txt
ECHO.>> A:\Histo.txt

Somme.bat

@ECHO OFF
REM Affiche la somme de tous les nombres entrés comme paramètres
SET Total=0
:Boucle
  IF "%1"=="" GOTO Fin 
  SET /A Total="Total+%1"
  SHIFT
  GOTO Boucle
:Fin
ECHO %Total%

Max.bat

@ECHO OFF
REM Affiche la plus grand des paramètres
SET Max=0
:Boucle
  IF "%1"=="" GOTO Fin 
	IF %1 GTR %max% SET /A max="%1"
  SHIFT
  GOTO Boucle
:Fin
ECHO La plus grande valeur est %Max%

Bonjour.bat

@echo off
set /P Nom="Comment t'appelles-tu ? "
echo Bonjour %Nom%
set /p Age="Quel age as-tu ? "
set /a reste=65-Age
echo Encore %reste% ans de turbin avant la retraite!

XHTML	1.0	validé! CSS validé!