Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1270 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Utilisation de la commande echo redirigée vers un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utilisation de la commande echo redirigée vers un fichier

n°1343291
jaimiye
Posté le 10-04-2006 à 16:57:38  profilanswer
 

Bonjour  
 
J’essaie d’écrire un batch pour générer automatiquement des fichiers .htm  
Le principe est echo lecontenudemapage > monfichier
Le nom du fichier varie avec la variable %i
Le corps du fichier varie avec la même variable
 
Ma commande est :
 
for /L %i in (1,1,800) do echo <html><head></head><body onload='compt=setTimeout("self.close();",15000)'><img style="width: 568px; height: 426px;" alt="" src="mondossier/XXX%i.jpg"></body></html> >E:\monchemin\fichier%i.htm
 
Outre le problème de mise en forme linéaire, mon souci est que echo interprète les < et >
Si je mets des guillemets, cela génère bien les fichiers, mais les guillemets se retrouvent écrits dans mon fichier.
J’ai ce résultat (pour fichier4.htm)
"<"html">""<"head">""<"/head">""<"body onload='compt=setTimeout("self.close();",15000)'">""<"img style="width: 568px; height: 426px;" alt="" src="mondossier/XXX4.jpg"">""<"/body">""<"/html">"  
 
Au lieu du
 
<html><head></head><body onload='compt=setTimeout("self.close();",15000)'><img style="width: 568px; height: 426px;" alt="" src="PhotoTristan/Tristan004.jpg"></body></html>  
 
escompté.
 
Idéalement, je voudrais :
 
<html>
<head>
</head>
<body onload='compt=setTimeout("self.close();",15000)'><img style="width: 568px; height: 426px;" alt="" src="PhotoTristan/Tristan004.jpg">
</body>
</html>  
 
Mais supprimer les guillemets sera déjà pas mal
 
Merci de vote aide
 
 
 
 
 
 

mood
Publicité
Posté le 10-04-2006 à 16:57:38  profilanswer
 

n°1343339
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-04-2006 à 17:19:35  profilanswer
 

Si tu as xmllint installé ( ce qui est vraisemblable)

Code :
  1. echo '<img style="width: 568px; height: 426px;" alt="" src="mondossier/XXX%i.jpg">' | xmllint -html --xmlout -format - | sed "s/<body>/<body onload='tonbouzin'>/"

n°1343416
jaimiye
Posté le 10-04-2006 à 18:09:26  profilanswer
 

Je ne connais pas xmllint. Je l'ai donc "installé"
Dos ne connait pas la commande sed
 
Surtout, j'ai pas tout compris a ta commande, car je ne voit pas en quoi elle générera 800 fichiers htm de contenu et de nom incrémenté.
 
Merci tout de même
 

n°1343456
wackevat
Posté le 10-04-2006 à 19:17:05  profilanswer
 

Fais attention aux caractères spéciaux comme < et >. L'invite de commandes risque de les interpréter comme les caractères de redirection.
Par exemple :

Code :
  1. echo ^<hello^>

n°1343458
jaimiye
Posté le 10-04-2006 à 19:19:58  profilanswer
 

C'est justement là tout mon problème et la raison de mon post ; contourner cette interpretation
 
 

n°1343679
wackevat
Posté le 10-04-2006 à 23:43:17  profilanswer
 

Justement, je t'avais donné la solution.

n°1343769
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-04-2006 à 09:09:30  profilanswer
 

jaimiye a écrit :

Je ne connais pas xmllint. Je l'ai donc "installé"
Dos ne connait pas la commande sed
 
Surtout, j'ai pas tout compris a ta commande, car je ne voit pas en quoi elle générera 800 fichiers htm de contenu et de nom incrémenté.
Merci tout de même


Ouppps pardon j'avais pas vu que c'était du dos!!!  
Par contre ma code génère bien ce que tu veux (sous linux) car xmllint te formate tout seul le flux html .
Donc avec la commande:

Code :
  1. echo '<img style="width: 568px; height: 426px;" alt="" src="mondossier/XXX%i.jpg">' | xmllint -html --xmlout -format - | sed "s/<body>/<body onload='tonbouzin'>/"


on obtiens:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
  <body onload='tonbouzin'>
    <img style="width: 568px; height: 426px;" alt="" src="mondossier/XXX%i.jpg"/>
  </body>
</html>


 

n°1343810
jaimiye
Posté le 11-04-2006 à 09:50:54  profilanswer
 

Alors moi ... je suis trop bête.
Je ne sais pas pourquoi hier soir, en testant ^<hello^> et obtenant <hello>, j'en ai déduit que c'était pas bon. J'avais du mettre le cerveau sur off (en réalité je me rappelle que ma dame me tannait pour que je lui serve de répétiteur à ce moment là).
 
Quoiqu'il en soit, je te remerçie vraiment de ta préçieuse colaboration.
Mais comment le sais tu ? C'est vrai quoi, j'ai cherché deux jours, lu des tonnes de truc. Le ^ je ne l'ai vu nullepart.
 
Petite question subsidiaire : Si je veux que "%i in (1,1,800)" donne 001 002,003, ... 031... 156 .. au lieu de 1,2,3...31... c'est possible ?
 
 

n°1344417
wackevat
Posté le 11-04-2006 à 19:46:03  profilanswer
 

jaimiye a écrit :

Petite question subsidiaire : Si je veux que "%i in (1,1,800)" donne 001 002,003, ... 031... 156 .. au lieu de 1,2,3...31... c'est possible ?


Ce n'est pas possible nativement, mais tu peux "décomposer" le for en 3 boucles différents : [1,9], [10,99] et [100-800].
 
Voilou ;)

n°1351876
jaimiye
Posté le 22-04-2006 à 16:37:42  profilanswer
 

Merci
 
En fait c'est exactement ce que j'avais fait ;-)
 
Je mets ci dessous la version finale si ça peut aider quelqu'un
 
for /L %i in (1,1,9) do echo ^<html^> >E:\monchemin\fichier00%i.htm
for /L %i in (1,1,9) do echo ^<head^> >>E:\monchemin\fichier00%i.htm
for /L %i in (1,1,9) do echo ^<META HTTP-EQUIV="imagetoolbar" CONTENT="no"^>^<title^>adc00%i^</title^> >>E:\monchemin\fichier00%i.htm
for /L %i in (1,1,9) do echo ^</head^> >>E:\monchemin\fichier00%i.htm
for /L %i in (1,1,9) do echo ^<body onload='compt=setTimeout("self.close();",10000)'^> >>E:\monchemin\fichier00%i.htm
for /L %i in (1,1,9) do echo ^<img STYLE="position:absolute; TOP:0px; LEFT:0px;" src="photoadc/adc00%i.jpg"^> >>E:\monchemin\fichier00%i.htm
for /L %i in (1,1,9) do echo ^</body^> >>E:\monchemin\fichier00%i.htm
for /L %i in (1,1,9) do echo ^</html^> >>E:\monchemin\fichier00%i.htm
 
for /L %i in (10,1,99) do echo ^<html^> >E:\monchemin\fichier0%i.htm
for /L %i in (10,1,99) do echo ^<head^> >>E:\monchemin\fichier0%i.htm
for /L %i in (10,1,99) do echo ^<META HTTP-EQUIV="imagetoolbar" CONTENT="no"^>^<title^>adc0%i^</title^> >>E:\monchemin\fichier0%i.htm
for /L %i in (10,1,99) do echo ^</head^> >>E:\monchemin\fichier0%i.htm
for /L %i in (10,1,99) do echo ^<body onload='compt=setTimeout("self.close();",10000)'^> >>E:\monchemin\fichier0%i.htm
for /L %i in (10,1,99) do echo ^<img STYLE="position:absolute; TOP:0px; LEFT:0px;" src="photoadc/adc0%i.jpg"^> >>E:\monchemin\fichier0%i.htm
for /L %i in (10,1,99) do echo ^</body^> >>E:\monchemin\fichier0%i.htm
for /L %i in (10,1,99) do echo ^</html^> >>E:\monchemin\fichier0%i.htm
 
for /L %i in (100,1,433) do echo ^<html^> >E:\monchemin\fichier%i.htm
for /L %i in (100,1,433) do echo ^<head^> >>E:\monchemin\fichier%i.htm
for /L %i in (100,1,433) do echo ^<META HTTP-EQUIV="imagetoolbar" CONTENT="no"^>^<title^>adc%i^</title^> >>E:\monchemin\fichier%i.htm
for /L %i in (100,1,433) do echo ^</head^> >>E:\monchemin\fichier%i.htm
for /L %i in (100,1,433) do echo ^<body onload='compt=setTimeout("self.close();",10000)'^> >>E:\monchemin\fichier%i.htm
for /L %i in (100,1,433) do echo ^<img STYLE="position:absolute; TOP:0px; LEFT:0px;" src="photoadc/adc%i.jpg"^> >>E:\monchemin\fichier%i.htm
for /L %i in (100,1,433) do echo ^</body^> >>E:\monchemin\fichier%i.htm
for /L %i in (100,1,433) do echo ^</html^> >>E:\monchemin\fichier%i.htm
 
(finalement je n'avais besoin que de 433 pages)
 

mood
Publicité
Posté le 22-04-2006 à 16:37:42  profilanswer
 

n°1351886
wackevat
Posté le 22-04-2006 à 16:54:49  profilanswer
 

Au fait, tu peux combiner tes boucles for pour le même intervalle d'indice de cette manière :

Code :
  1. for /l %i in (...) do (
  2.   echo blabla
  3.   echo blibli
  4. )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Utilisation de la commande echo redirigée vers un fichier

 

Sujets relatifs
Try / Catch / throw ou bien utilisation de int ?problème avec la commande "connect to"
Générer une page html depuis un fichier textegénérer page html par le biais d'un fichier texte
problème avec la commande xcopy[c#][direct input] Problème utilisation joystick
Fichier et commande dos(DotNet c++) envoi vers une textbox
Modifier fichier texte 
Plus de sujets relatifs à : Utilisation de la commande echo redirigée vers un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR