HOWTO · Batch
Utiliser un fichier batch pour écrire dans un fichier texte
Ce didacticiel traite de l'écriture d'un fichier texte à l'aide de Batch Script.
Sur cette page
Utilisez la commande ECHO avec > pour créer un fichier texte ou remplacer son contenu, et >> pour ajouter du texte sans effacer ce qui s’y trouve déjà. Ces opérateurs fonctionnent dans l’invite de commandes Windows et dans les scripts .bat. Les exemples ci-dessous montrent les commandes et le texte écrit dans chaque fichier. Les libellés visibles dans les blocs de code et leur sortie restent en anglais, car ces blocs sont conservés à l’identique.
Créer un fichier texte
Ce script écrit une ligne dans myfile.txt, dans le répertoire de travail actuel :
@echo off
echo This is my first line of text > myfile.txt
Le fichier contient This is my first line of text (cette phrase reste en anglais dans l’exemple). Si myfile.txt existe déjà, > remplace son contenu. Pour écrire ailleurs, indiquez un chemin de destination complet, par exemple C:\Users\YourName\Documents\myfile.txt, et vérifiez que le répertoire de destination existe déjà. @echo off évite d’afficher les commandes du script pendant son exécution.
Ajouter du texte à un fichier existant
Utilisez >> pour conserver le contenu actuel et ajouter une ligne à la fin. Cet exemple autonome crée d’abord un fichier de départ connu, puis ajoute une deuxième ligne :
@echo off
echo First line> myfile.txt
echo Added line>> myfile.txt
Après l’exécution du script, le fichier contient First line, puis Added line à la ligne suivante (ces libellés restent en anglais dans l’exemple). À chaque exécution ultérieure, une autre ligne Added line est ajoutée : le texte précédent n’est pas remplacé. La première commande utilise > pour préparer l’exemple ; supprimez-la si vous adaptez le script à un fichier qui contient déjà des données.
Écrire plusieurs lignes dans un fichier texte
Regroupez plusieurs commandes ECHO entre parenthèses, puis redirigez le groupe en une seule fois :
@echo off
(
echo First line
echo Second line
echo Third line
) > myfile.txt
Chaque commande écrit une ligne distincte. Le groupe est redirigé avec > ; son exécution remplace donc le fichier cible par ces trois lignes. Remplacez > par >> pour ajouter ces lignes au contenu existant.
Utiliser des variables dans un fichier texte
Définissez une valeur avec SET, puis encadrez son nom de signes pour cent afin de l’insérer dans la ligne écrite :
@echo off
set "myVariable=Hello from Batch"
echo %myVariable%> myfile.txt
Le fichier reçoit Hello from Batch (cette phrase reste en anglais dans l’exemple). La forme de SET avec guillemets évite que des espaces finaux accidentels soient inclus dans la valeur ; les guillemets eux-mêmes n’en font pas partie. Utilisez plutôt >> si vous voulez ajouter la valeur de la variable à un fichier existant.
Écrire la sortie d’une commande dans un fichier texte
Redirigez une commande telle que DIR pour enregistrer son résultat :
@echo off
dir > directory_list.txt
Cela crée ou remplace directory_list.txt par la liste du répertoire actuel. Les éléments affichés dépendent de l’ordinateur et du répertoire de travail ; le contenu du fichier varie donc. Utilisez dir >> directory_list.txt pour ajouter une nouvelle liste après le texte existant.
Mettre à jour un fichier texte existant
Choisissez l’opérateur selon ce que signifie « mettre à jour » dans votre cas : >> ajoute du texte et conserve les lignes existantes, tandis que > remplace le contenu du fichier par le texte produit par la commande. Par exemple, echo Status: complete >> myfile.txt ajoute une ligne d’état. Si vous devez modifier une ligne précise tout en conservant les autres, utilisez d’abord un outil conçu pour modifier des fichiers. Une boucle FOR /F qui lit puis réécrit un fichier ne constitue pas une méthode générale fiable : elle peut modifier les lignes vides et le texte contenant des caractères spéciaux de Batch.
FAQ
- Comment créer un fichier texte ? Utilisez
ECHOavec>; le fichier est créé s’il n’existe pas, et son contenu est remplacé s’il existe déjà. - Comment ajouter du texte sans remplacer le contenu existant ? Utilisez
>>. - Comment écrire plusieurs lignes ? Regroupez plusieurs commandes
ECHOentre parenthèses et redirigez le groupe. - Une ligne peut-elle contenir une variable ? Oui. Définissez-la avec
SETet développez-la sous la forme%variableName%dans une commandeECHO. - Comment enregistrer la sortie d’une commande ? Ajoutez
>ou>>après la commande pour remplacer le fichier de destination ou y ajouter le résultat.