Script Batch - Entrée / Sortie

Salut à toi, futurs programmeurs ! Aujourd'hui, nous plongeons dans le monde fascinant des scripts Batch, en nous concentrant sur les opérations d'entrée et de sortie. En tant que ton professeur d'informatique du coin, je suis excité de te guider à travers ce périple. Ne t'inquiète pas si tu n'as jamais écrit une ligne de code auparavant - nous allons commencer par les bases et progresser pas à pas. Alors, prends une tasse de ta boisson favorite et c'est parti !

Batch Script - Input / Output

Comprendre l'Entrée et la Sortie dans les Scripts Batch

Avant de rentrer dans le vif du sujet, parlons de ce que signifient l'entrée et la sortie dans le contexte des scripts Batch.

  • Entrée est l'information qui entre dans ton script. C'est comme nourrir des données à ton programme.
  • Sortie est ce que ton script produit ou affiche. C'est le résultat du travail de ton script.

Pense à cela comme une cuisine : l'entrée sont les ingrédients que tu utilises, et la sortie est le délicieux repas que tu crées !

Entrée de Base : La Commande SET /P

Commençons par la manière la plus courante de récupérer une entrée dans les scripts Batch : la commande SET /P. Cette commande nous permet de demander une entrée à l'utilisateur et de la stocker dans une variable.

@echo off
SET /P name=Quel est ton nom ?
echo Bonjour, %name% ! Bienvenue dans le monde des scripts Batch !
pause

Dans cet exemple :

  1. @echo off empêche les commandes d'être affichées à l'écran.
  2. SET /P name=Quel est ton nom ? demande à l'utilisateur de saisir son nom et le stocke dans la variable name.
  3. echo Bonjour, %name% ! affiche un salut en utilisant le nom saisi.
  4. pause garde la fenêtre ouverte pour que tu puisses voir le résultat.

Essaye d'exécuter ce script. C'est comme avoir une petite conversation avec ton ordinateur !

Sortie de Base : La Commande ECHO

Nous avons déjà vu la commande ECHO en action. C'est le moyen principal pour afficher une sortie dans les scripts Batch. Explorons un peu plus :

@echo off
echo Cette est une sortie simple.
echo.
echo Cette ligne a une ligne vide au-dessus d'elle.
echo "Les guillemets" sont affichés tels quels.
echo.
echo Date actuelle : %date%
echo Heure actuelle : %time%
pause

Voici ce qui se passe :

  • echo. imprime une ligne vide.
  • Nous pouvons utiliser ECHO pour afficher du texte, des variables, et même des informations système comme la date et l'heure.

Redirection de la Sortie (Stdout et Stderr)

Maintenant, parlons de la redirection de la sortie. Dans les scripts Batch, nous avons deux types principaux de sortie :

  1. Sortie Standard (stdout) : La sortie normale d'une commande.
  2. Sortie d'Erreur (stderr) : Les messages d'erreur ou les sorties diagnostiques.

Nous pouvons rediriger ces sorties vers des fichiers en utilisant les opérateurs > et >>.

Redirection de la Sortie Standard

@echo off
echo Cela sera sauvegardé dans un fichier > output.txt
echo Cela sera ajouté au fichier >> output.txt
type output.txt
pause

Dans ce script :

  • > crée (ou écrase) un fichier et écrit la sortie dedans.
  • >> ajoute la sortie à un fichier existant (ou le crée s'il n'existe pas).
  • type output.txt affiche le contenu du fichier.

Redirection de la Sortie d'Erreur

Pour rediriger les messages d'erreur, nous utilisons 2> au lieu de simplement >.

@echo off
dir repertoire_inexistant 2> error.txt
type error.txt
pause

Ce script essaie de lister un répertoire inexistant et redirige le message d'erreur vers un fichier.

Redirection de la Sortie Standard et de la Sortie d'Erreur

Nous pouvons rediriger les deux types de sortie vers le même fichier :

@echo off
dir 2>&1 > output.txt
type output.txt
pause

Ici, 2>&1 signifie "rediriger stderr vers le même endroit que stdout".

Suppression de la Sortie du Programme

Parfois, tu peux vouloir exécuter une commande sans afficher sa sortie. Nous pouvons faire cela en redirigeant la sortie vers un périphérique spécial appelé NUL.

@echo off
echo Cela sera affiché
echo Cela ne sera pas affiché > NUL
dir > NUL
echo La liste des répertoires a été supprimée
pause

Dans ce script, la sortie de la deuxième commande ECHO et de la commande DIR est supprimée.

Techniques Avancées d'Entrée/Sortie

Maintenant que nous avons couvert les bases, regardons quelques techniques plus avancées.

Utilisation de CHOICE pour l'Entrée Utilisateur

La commande CHOICE offre une manière plus structurée de demander une entrée à l'utilisateur :

@echo off
echo Aimes-tu la programmation ?
choice /c YN /m "Tape Y pour Oui ou N pour Non"
if errorlevel 2 goto Non
if errorlevel 1 goto Oui
:Oui
echo Super ! Continuons à apprendre !
goto Fin
:Non
echo Ne t'inquiète pas, tu vas adorer bientôt !
:Fin
pause

Ce script :

  1. Présente une question Oui/Non à l'utilisateur.
  2. Utilise /c YN pour spécifier les choix valides (Y ou N).
  3. Utilise /m pour afficher un message personnalisé.
  4. Utilise if errorlevel pour vérifier le choix de l'utilisateur et sauter à l'étiquette appropriée.

Lecture à Partir d'un Fichier

Nous pouvons également lire une entrée à partir d'un fichier :

@echo off
for /f "delims=" %%a in (input.txt) do (
echo Ligne lue : %%a
)
pause

Ce script lit chaque ligne de input.txt et l'affiche.

Écriture dans Plusieurs Fichiers

Créons un script qui écrit dans plusieurs fichiers :

@echo off
echo Contenu du fichier 1 > file1.txt
echo Contenu du fichier 2 > file2.txt
echo Contenu du fichier 3 > file3.txt
echo Fichiers créés avec succès !
pause

Celui-ci crée trois fichiers distincts avec un contenu différent.

Résumé des Méthodes d'Entrée/Sortie

Résumons les méthodes d'entrée/sortie que nous avons apprises dans un tableau pratique :

Méthode Description Exemple
SET /P Récupérer l'entrée utilisateur SET /P name=Entrer le nom :
ECHO Afficher une sortie echo Bonjour, le monde !
> Rediriger la sortie vers un fichier echo Texte > file.txt
>> Ajouter la sortie à un fichier echo Plus de texte >> file.txt
2> Rediriger la sortie d'erreur commande 2> error.txt
2>&1 Rediriger stdout et stderr commande > output.txt 2>&1
NUL Supprimer la sortie commande > NUL
CHOICE Entrée utilisateur structurée choice /c YN /m "Oui ou Non ?"
FOR /F Lire à partir d'un fichier for /f "delims=" %%a in (file.txt) do ...

Et voilà, les amis ! Nous avons fait le tour du monde des entrées et sorties dans les scripts Batch. Souviens-toi, la clé pour maîtriser ces concepts est la pratique. Essaie d'écrire tes propres scripts, expérimente avec différentes commandes, et n'aie pas peur de faire des erreurs - c'est ainsi que nous apprenons !

Comme ton vieux professeur d'informatique le dit toujours, "En programmation, chaque erreur est une nouvelle opportunité d'apprentissage déguisée." Alors, va écrire tes scripts Batch, et puisses tes sorties toujours être telles que tu l'as prévu !

Credits: Image by storyset