Une fois la commande echo (now, date, time) maîtrisée, vous pouvez soit contrôler l’écriture des résultats dans un fichier, soit rediriger la sortie globale du script vers un fichier. La première solution permet un contrôle plus fin de ce qui sera dans le fichier, la redirection permet de facilement passer
La création d’un fichier texte et ses variantes
de l’écran au fichier. Dans ce cas, on se contentera de lancer le script de la manière suivante
C:\>MonScript >c:\logs\resultat.txt
Un petit rappel sur les opérateurs de redirection « > » et « >> » : le premier permet de rediriger les affichages dans un fichier qui sera créé ou recréé pour l’occasion. Le second permet de compléter un fichier existant. Ces opérateurs peuvent être employés au niveau du lancement du script (comme dans l’exemple précédent) ou à l’intérieur même du script au niveau de chacune des commandes (pour l’écriture dans un ou plusieurs fichiers cf. l’exemple de script en fin d’article). On peut aussi mixer ce qui apparaît à l’écran et ce qui est envoyé dans un fichier. Exemple d’affichages multiples :
:: Definition des sorties
Set LogBrief=c:\logs\bref.txt
Set LogFull=c:\Logs\full.txt
Set Message=Lancement du script de test des affichages
:: Affichage à l’écran
Echo %Message%
:: Création du fichier « Bref » et affichage d’un message daté.
Now %Message% >%LogBrief%
:: ajout dans le fichier « complet » du message
Now %Message% >>%logFull%
:: Exécution de commande diverses avec redirections dans le fichier « complet »
Dir c:\windows >>%LogFull%
:: on peut aussi utiliser les fichiers créés lors du script pour un affichage écran en fin de script
If exist %LogFull% type %LogFull%
Je peux aussi créer des fichiers plus structurés comme un fichier CSV
:: Definition des sorties
Set Sortie=c:\logs\sortie.csv
Echo Machine ;User >%Sortie%
Echo %ComputerName% ;%userName% >>%sortie
:: on peut même lancer directement Excel sur le fichier ainsi créé
If exist %Sortie% start %Sortie%
Pour la création d’un fichier HTML, c’est à peine plus compliqué qu’un fichier texte, il faut juste préparer un fichier d’entete et un fichier pied de page avec les lignes suivantes :
Entete.txt :
<html>
<body>
Pied.txt :
</body>
</html>
Pourquoi passer par ces fichiers ? Les caractères < et > sont pris par l’interpreteur de commande comme des caractères de redirection. Le Script qui génère du HTML ressemblerait à :
:: Definition des sorties
Set Sortie=c:\logs\dir.html
Set Entete=c:\scripts\HTML-entete.txt
Set Pied=c:\scripts\HTML-entete.txt
:: initialisation
If exist %Entete% type %Entete% >%Sortie%
:: Corps du Script (par exemple)
Echo %ComputerName% >>%Sortie%
Echo %UserName% >>%Sortie%
:: Fin de fichier
If exist %Pied% type %Pied% >>%Sortie%
If exist %Sortie% start %Sortie%
:: Affichage du fichier obtenu
start %sortie%
Une des grandes limites de l’interpréteur de commande pour générer des fichiers HTML, c’est son incapacité à gérer les <> qui sont les caractères utilisés dans le HTML pour gérer les balises. Mais avec un peu d’astuce, on peut faire quand même des choses (mais ça, ce sera une autre histoire).
Téléchargez cette ressource
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.