Créer un fichier xml à partir d'un batch ? [Résolu/Fermé]

Signaler
-
Messages postés
20393
Date d'inscription
mercredi 18 avril 2007
Statut
Contributeur
Dernière intervention
25 janvier 2021
-
Bonjour,

Comme indiqué dans le sujet, j'aimerais savoir si il est possible de créer un fichier xml à l'aire d'un batch. Parce que c'est bien beau de pourvoir créer un fichier xml a l'aide de cette commande :
echo "ce que je met dans mon fichier" >> F:\NomDeMonfichier.xml
Mais avec cela je ne peut écrire juste une ligne (ou bien je ne sais pas m'en servir :/ ) Mais je n'arrive pas créer un fichier avec plusieurs lignes et surtout qui possède des :
"<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay> "
Enfin les < et > , les mêmes espaces, sauté des lignes,.. Enfin vous avez compris non ? ><'
Bref voila merci ! ( excusez-moi si cette question à déjà été posée mais je n'ai pas trouvé la réponse )
Encore merci !

4 réponses

Messages postés
2371
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
13 janvier 2021
437
Salut,

En ajoutant les lignes une par une :
echo '<?xml version="1.0" encoding="UTF-8"?>' > file.xml
echo '<root>' >> file.xml
echo '    <item></item>' >> file.xml
echo '</root>' >> file.xml


En une seule instruction :
echo -e '<?xml version="1.0" encoding="UTF-8"?>\n<root>\n\t<item></item>\n</root>' > file.txt


Bonne journée
Messages postés
20393
Date d'inscription
mercredi 18 avril 2007
Statut
Contributeur
Dernière intervention
25 janvier 2021
1 566
echo "ce que je met dans mon fichier" >> F:\NomDeMonfichier.xml
Mais avec cela je ne peut écrire juste une ligne

Justement non
> (redirection simple) permet d'écrire une seule ligne (en simplifiant). même si cette ligne peut contenir des retours chariots
par contre
>> (ajout enfin de fichier) te permet d'ajouter autant de lignes que tu veux à la fin de ton fichier, sans toucher au haut de ton fichier.
Ce qui te permet de faire la version bateaux ou tu tapes les commandes à la main.

Travaillant sur la même chose, on arrive rapidement à la conclusion que faire des fonctions (surtout pour les lignes <cle>valeur</cle>) permet de gagner un temps fou, et de faciliter la lecture et la maintenance


Stop failing the turing test !
Messages postés
1643
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
5 mai 2020
272
Une autre approche sous Windows et complètement utilisable en ligne de commande serait d'utiliser du VBScript comme dans cet exemple https://docs.microsoft.com/fr-fr/previous-versions/technet-magazine/cc194420(v=msdn.10)?redirectedfrom=MSDN . Cela permet de respecter la DOM XML et d'avoir quelque chose d'un peu plus évolué et rapide que l'interpréteur de commande Windows.

Tout dépends de la complexité du XML devant être produit. namespace, cdata, etc ...

Sinon on peut aussi le faire en powershell.

http://powershell.com/cs/blogs/tobias/archive/2009/02/02/xml-part-2-write-add-and-change-xml-data.aspx

Après si c'est sous linux cela ouvre le champs des possibles ...

You may stop me but you can't stop us all   ;-)
Je cherche du boulot
Messages postés
1643
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
5 mai 2020
272
Un autre exemple démontrant la simplicité du Powershell pour la manipulation dans Windows de XML :
https://serverfault.com/questions/26976/update-xml-from-the-command-line-windows
Enfin puisque je suis dans les pages en anglais : quelques "bests practices" exposées de façon un peu lapidaires mais pas totalement dénuées de bon sens : HOWTO Avoid Being Called a Bozo When Producing XML :-)
merci beaucoup pour vos réponses, je vais opter pour la technique de Pilet, qui est peut-être la plus fastidieuse, mais que je trouve plutôt simple. (Et puis je ne connais pas bien le VBscript ou le shell et je n'ai pas trop le temps de me pencher la dessus)

Encore merci ! :D
Messages postés
20393
Date d'inscription
mercredi 18 avril 2007
Statut
Contributeur
Dernière intervention
25 janvier 2021
1 566
T’inquiètes, on commence toujours pas la méthode séquentielle fastidieuse.
Et puis avec le temps, on commence à utiliser des astuces de factorisation/fonctions.
Tu y viendras quand tu seras prêt.