Créer un fichier xml à partir d'un batch ?

Résolu
Emerois -  
dna.factory Messages postés 19971 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. Pitet Messages postés 2845 Statut Membre 530
     
    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
    1
  2. dna.factory Messages postés 19971 Date d'inscription   Statut Modérateur Dernière intervention   1 621
     
    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 !
    0
  3. ryko1820 Messages postés 1633 Date d'inscription   Statut Membre Dernière intervention   310
     
    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
    0
    1. ryko1820 Messages postés 1633 Date d'inscription   Statut Membre Dernière intervention   310
       
      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 :-)
      0
  4. Emerois
     
    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
    0
    1. dna.factory Messages postés 19971 Date d'inscription   Statut Modérateur Dernière intervention   1 621
       
      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.
      0