Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Batch] Creazione di una pagina html

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

[Batch] Creazione di una pagina html

Postdi infinito1971 » 22/07/08 17:16

Ciao a tutti e ben trovati! :)
Stavo smanettano un pò con i file batch (caro vecchio DOS!) cercando di creare una pagina html tramite, appunto, un file batch.
Ho scritto un file denominato Google.bat, contenente il seguente codice:

Codice: Seleziona tutto
del Google.html
for %%i in (^<html^> ^<a^ href^="www.google.it"^>Google^</a^> ^</html^>) do echo %%i >> Google.html

Il file genera un file che però al suo interno contiene dei ritorni di riga che nel corretto file html non dovrebbero esserci.
Come lo si può correggere?

Inoltre, se sostituisco la prima riga del suddetto file batch con la seguente:

Codice: Seleziona tutto
nill > Google.html

Prima che il file html venga creato mi appare un messaggio di errore; a cosa è dovuto?

Grazie in anticipo.

Un saluto,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli

Sponsor
 

Re: [Batch] Creazione di una pagina html

Postdi mikedepetris » 23/07/08 08:23

i fineriga non danno problemi all'html per quanto riguarda il funzionamento, solo alla leggibilita', in ogni caso ECHO ti chiudera' sempre con un fineriga, dovresti provare un batch processor alternativo, ma cosa vuoi ottenere esattamente visto che il tuo ciclo FOR scritto cosi' e' inutile?
mikedepetris
Utente Senior
 
Post: 121
Iscritto il: 24/08/07 09:03
Località: Trieste

Re: [Batch] Creazione di una pagina html

Postdi archimede » 23/07/08 12:48

I ritorni di riga si potrebbero forse anche eliminare, ma dalle prove (veloci, in verità) che ho fatto mi pare ci siano ben altri problemi nel tuo codice: lo spazio e il segno = mi pare vadano persi. Francamente non so perché l'escape in questi casi non vada, ma se prima non risolvi questo, togliere gli a capo potrebbe non servire a nulla.

Alessandro

PS: quanto al nill, mai vista quella sintassi; io conosco type nul > nomefile.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: [Batch] Creazione di una pagina html

Postdi infinito1971 » 23/07/08 13:59

Ciao Ale,
innanzittutto grazie per la risposta!
Per il nill avevo sbagliato a scrivere ed è giusto quanto hai riportato tu!
Per quanto riguarda gli escape, in particolare il simbolo di uguaglianza, anch'io come te non mi spiego il motivo del non funzionamento... :roll:
Sarebbe interessante riuscire a venirne a capo non trovi?!? Almeno per principio! Dopotutto valgono sempre le parole del Sommo Poeta: Nati non foste a viver come bruti, ma per seguir virtute e canoscenza! :)

Un saluto,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli

Re: [Batch] Creazione di una pagina html

Postdi archimede » 23/07/08 14:18

infinito1971 ha scritto:Per il nill avevo sbagliato a scrivere ed è giusto quanto hai riportato tu!
E funziona?
infinito1971 ha scritto:Per quanto riguarda gli escape, in particolare il simbolo di uguaglianza, anch'io come te non mi spiego il motivo del non funzionamento... :roll:
Sarebbe interessante riuscire a venirne a capo non trovi?!? Almeno per principio!
In teoria sì, in pratica non sempre si ha il tempo (o la capacità) di soddisfare certe curiosità. Siccome il tuo mi pare un esempio un po' teorico (non penso che vorrai ridurti a scrivere manualmente pezzi di stringa in un loop), perché invece non illustri cosa intendi fare davvero? Potremmo scoprire che nel caso reale il problema neanche si pone.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: [Batch] Creazione di una pagina html

Postdi Dylan666 » 23/07/08 17:30

Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Re: [Batch] Creazione di una pagina html

Postdi archimede » 23/07/08 18:01

Generico tentativo o stai dicendo che lì c'è la risposta al problema sopra discusso (io non la vedo)?

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: [Batch] Creazione di una pagina html

Postdi Dylan666 » 23/07/08 18:33

No, dico che la risposta non c'è, o meglio che caratteri di escape per le virgolette che non generino interruzioni di riga non esistono.

Quello che potrebbe fare è questo:
for %%i in ("<html> <a href='www.google.it'>Google</a> </html>") do echo %%i >> Google.html

Ma poi deve aggiungere al cilco l'istruzione per rimuovere o ingorare il primo e l'ultimo carattere che sarebbero le virgolette, che altrimenti vengono "stampate" con resto dell'output. Io però non sono capace a farlo
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Re: [Batch] Creazione di una pagina html

Postdi infinito1971 » 23/07/08 18:46

Il codice:

Codice: Seleziona tutto
type nul > nomefile

funziona ed è corretto!

Per quanto riguarda il mio esempio, effettivamente, come dici è solo teorico ma è nato da un fatto pratico reale.
Mi spiego: per diletto, mi sono trovato a scrivere un file batch non proprio banale che richiama diversi programmi a cui vengono passati degli script.
Gli script che vengono passati a tali programmi li ho creati dinamicamente mediante lo stesso file batch (senza ricorrere alla creazione preventiva degli script, in modo tale da non dover sempre copiare oltre al file batch anche il file che contiene lo script) e, fortunatamente, non contenedo caratteri speciali, non ho avuto difficoltà a realizzarli.
Proprio da questo fatto, però, mi sono chiesto: e se avessi dovuto utilizzare degli script contenenti caratteri speciali di escape, tipo quelli che potrebbe contenere una qualsiasi pagina html?
Da qui la nascita del topic proposto.
Forse, nella realtà, se si verificasse un esigenza del genere, la soluzione immediata sarebbe quella di "allegare" la pagina html al file batch o, nel caso sia proprio necessario crearla dinamicamente, si potrebbe prima realizzare un programmino apposito (in un qualsiasi linguaggio di programmazione) a cui vengono passati i parametri che permettono al programmino stesso di creare dinamicamente la pagina html e poi richiamare tale programma dal file batch.
Nella realtà, quindi, il problema che ho posto non sussisterebbe; per cui, esso è, a tutti gli effeti, solo un esempio di tipo teorico.
Dopotutto, e non me ne volere, diciamo che "per deformazione professionale" sono portato alle generalizzazione ed alle astrazioni...
La curiosità, però, ora è rimasta... chissà se riuscirò a soddisfarla.
Sperando di non averti tediato oltre il dovuto, ti saluto.

Cordialmente,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli

Re: [Batch] Creazione di una pagina html

Postdi archimede » 23/07/08 23:46

Se siamo in ambito accademico allora forse così:
Codice: Seleziona tutto
@echo off
SetLocal EnableDelayedExpansion
set a1=^<html^>
set a2=^<body^>
set a3=^<a
set a4=href="www.google.it"^>
set a5=Google
set a6=^</a^>
set a7=^</body^>
set a8=^</html^>
For /L %%I in (1,1,8) Do Set T=!T!!a%%I!
echo !T! >> Google.html
HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: [Batch] Creazione di una pagina html

Postdi infinito1971 » 24/07/08 04:24

Ciao Ale,
dunque, il tuo codice funziona e mi piace... certo l'ideale sarebbe quello di definire tutte le variabili (ma non so se è possibile) mediante un unico ciclo for.
Quindi, in merito al tuo HTH, ti dico come recita un noto spot: è come una Doufour: non basta ...ma aiuta! ;)

Un saluto,
infinito1971

P.S. L'orario di questo topic è così mattiniero perchè ho da poco avuto una bimba e sono alle prese, tra una riga di codice e l'altra, con poppate notturne e cambi di pannolini... :)
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 531
Iscritto il: 01/08/02 21:22
Località: Napoli


Torna a Programmazione


Topic correlati a "[Batch] Creazione di una pagina html":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti