Les scripts batch permettent de manipuler facilement des fichiers texte pour stocker des paramètres, consigner des journaux (logs) ou traiter des données.
Les opérations de base reposent sur des redirections (> et >>), ainsi que la boucle for /f pour lire ligne à ligne (voir liste des commandes).
Ce mini tuto sert d’aide-mémoire pratique.
Pour écrire, on redirige la sortie d’echo vers un fichier.
| Commande | Explications |
|---|---|
| > | Création ou écrasement du fichier |
| >> | Ajout en fin de fichier |
@echo off
rem Créer ou écraser le fichier
echo Ligne 1 > fichier.txt
rem Ajouter sans écraser
echo Ligne 2 >> fichier.txt
echo Ligne 3 >> fichier.txt
Astuce : combinez avec l’horodatage (voir date & heure) pour nommer vos fichiers de log.
La boucle for /f lit un fichier texte ligne par ligne.
Vous pouvez récupérer la ligne entière ou parser des colonnes.
@echo off
for /f "usebackq tokens=* delims=" %%L in ("fichier.txt") do (
echo Ligne lue : %%L
)
pause
| Paramètre | Explications |
|---|---|
| usebackq | Permet d’utiliser des guillemets autour du nom de fichier |
| tokens | Définit quelles colonnes (ou mots) sont extraites lors du découpage d’une ligne |
| delims | Définit le ou les caractères séparateurs utilisés pour découper la ligne (par défaut : espace et tabulation) |
On crée un fichier log et on y ajoute des étapes avec date/heure. La variable est initialisée via set.
@echo off
set log=script_%date:~6,4%-%date:~3,2%-%date:~0,2%.log
echo %date% %time% : Début >> "%log%"
echo Traitement A... >> "%log%"
echo %date% %time% : Fin >> "%log%"
echo Log généré : "%log%"
Voici comment lire un fichier CSV simple (ex. users.csv) en séparant les colonnes par ;.
@echo off
for /f "usebackq tokens=1,2,3 delims=;" %%A in ("users.csv") do (
echo Utilisateur: %%A Email: %%B Rôle: %%C
)
Préférez les chemins entre guillemets, évitez les espaces en fin de lignes, et validez l’existence du fichier avant lecture.
@echo off
if not exist "fichier.txt" (
echo Erreur : "fichier.txt" introuvable.
exit /b 1
)