Il peut être intéressant d'automatiser certaines tâches répétitives, comme la création de comptes utilisateurs. Pour cela, on peut faire appel aux scripts.
Le script va exécuter selon l'algorithme défini une suite d'actions.
start <nom_du_script>.bat
@echo off
au début du scripttitre <titre_programme>
mode con cols=80 lines=16
# Ici, on affiche 80 colonnes et 16 ligneszd
color <couleur>
Voici la liste des couleurs disponibles :
Code | Couleur |
---|---|
0 | Noir |
1 | Bleu foncé |
2 | Vert |
3 | Bleu-Gris |
4 | Marron |
5 | Pourpre |
6 | Kaki |
7 | Gris Clair |
8 | Gris |
9 | Bleu Clair |
A | Vert Clair |
B | Cyan |
C | Rouge |
D | Rose |
E | Jaune |
F | Blanc |
Notez que le code couleur se fait en utilisant la base héxadécimale
cls
exit
echo <texte>
::
ET/OU REM
Liste non exaustive des variables d'environnement :
set <nomVariable>=<valeur>
Attention : les variables doivent commencer par un caractère alphabétique et ne doivent pas contenir de caractères spéciaux.
set a=2
set b=5
set /a resultat=%a%+%b%
:: resultat vaut maintenant 7
Le caractère /a est un commutateur qui permet d'effectuer les calculs. Si nous ne l'avions pas mis, alors le résultat aurait été différent.
Exemple :set a=2 set b=5 set resultat=%a%+%b% :: resultat vaut 2+5
set /p <variable>=Saisissez votre texte:
set variable1=Test1
set variable2=%variable1:~1,3%
echo %variable2%
:: retourne "est"
if [COMPARE 1] [COMPARANT] [COMPARE 2] (
:: action si la condition est respectée
) else (
:: action si la condition n'est pas respectée
)
Liste des comparants :
Comparant : | Signification : |
---|---|
equ (ou ==) | égal à |
neq | différent de |
lss | inférieur à |
leq | inférieur ou égal à |
gtr | supérieur à |
geq | supérieur ou égal à |
Exemple :
if %variable1% == 12 (
echo variable1 est egal a 12
) else (
echo variable1 n'est pas egal a 12
)
if 42 == 42 echo Le monde marche !
Batch ne prévoir pas la possibilité de tester plusieurs conditions en même temps (SI ... ET ... ALORS ...). Il faut donc utiliser plusieurs IF pour combler cela : if valeur1 lss valeur2 if valeur3 lss valeur4 echo
Il faut convertir le temps en nombre de minutes, puis comparer ce nombre.
Déclaration de l'étiquette : :nom_etiquette
Syntaxe : goto nom_etiquette
Syntaxe :
for %%variable in (condition) do (
:: instruction
)
Exemples :
for %%v in (5 4 3 2 1) do (
echo %%v
)
Ce qui affichera :
5
4
3
2
1
Cette syntaxe peut devenir gênante pour les grandes boucles.
Note : Dans les boucles, les variables sont appelées avec
%%
et non%
ou%variable%
Il existe une autre syntaxe, similaire aux autres langages :
for /l %%v in (valeur_départ_i, pas, valeur_max) do (
:: instruction
)
for /d %variable IN (répertoire)
pour exécuter des commandes sur tous les fichiers d'un répertoirefor /f ["options"] %variable IN (fichier.txt)
permet de parcourir le texte d'un fichier ou d'une chaine de caractère.for /r
pour traiter un répertoire et tous ses sous-dossiers.