Newsgroup: it.comp.os.os2
Titolo: Suggerimenti per per un file di batch

Dunque ho un programma, mmsrip, che scarica i files tramite il
protocollo mms e crea *automaticamente* un file (con il nome specificato
nel comando mms://server/path/nomefile); ce' un sistema per, al termine
del download, far leggere automaticamente quel file ad un altro
programma? Oppure come posso "dare in pasto" la stringa dopo l' ultimo
"/" come input del programma in questione?
Bello eh? :-)

 "/" come input del programma in questione?
credo dipenda dal programma in questione.. se accetta il file in input 
nella riga comando dovrebbe eesere possibile un file .cmd tipo:
mms://server/path/nomefile
programmainquestione.exe \path\nomefile
exit
ciao
piersante


mi spiego meglio "mms://server/path/nomefile" sta in una variabile tipo
%1, il cui contenuto io non lo conosco (tranne che per fare dei test),
mmsrip deposita il file scaricato nella dir in cui si trova il cmd, il II
programma si trova in un' altro percorso ma non e' questo un problema.
il cmd per ora e' fatto cosi':
-------------
mmsrip %1
-------------
ma e' chiaro che non posso poi mettere
programma \path\%1
il nomefile non lo conosco ma so che e' tutta la stringa dopo l' ultimo
"/"
Stavo pensando a qualcosa tipo grep ma dovrebbe contarmi l' ultima
ricorrenza di un carattere (il "/") e filtrarmi tutta la serie di
caratteri successiva... insomma una funzione Grep(%1)=nomefile
OK mi direte... mettiti a studiare GREP...
vabbe' daccordo ma se qualcuno lo sa gia' magari faccio un po' prima... e'
anche per questo che esistono i gruppi... 
Chiarisco lo scopo finale:
sarebbe quello di fare in modo che quando firefox incontra una pagina
contenente il comando mms:// gestisca questo protocollo non direttamente
(perche' ovviamente non lo conosce) ma tramite mmsrip che contenuto in un
cmd (al quale dovrebbe essere passata tutta la stringa) mi scarica in
locale il file e poi mi avvia video2.exe.. che appunto lo eseguirebbe in
locale e non in remoto. Tutto in automatico.
TRoppo complesso? Il problema e' che wvgui del 24 marzo (le versioni piu'
recenti non mi funzionano bene) non mi riproduce molto bene i suoni in
streaming remoto e quindi sto cercando di ovviare in qualche modo.
-- 
Alessandro
-------------------------------------------
Ubi Maior minor cessat
-------------------------------------------

 wrote:

devi usare uno script REXX o un semplice file batch o se non c'e'
problema a ripetere il nome del file alla fine del comando aggiungi
& e.exe nomefile
altrimenti dovresi scrivere un'applicazione apposita che usi una
named pipe cosi' potresti leggere il file man mano che viene scritto...
--
bye
Alessandro Cantatore
email reply to: acantatore_at_tin_dot_it

 (perche' ovviamente non lo conosce) ma tramite mmsrip che contenuto in un
mossibile che non ci sia il modo di aggiungere un protocollo esterno a 
firefox?
Ad ogni buon conto potresti scrivere uno script che
1) Legge il comando in entrata
2) Estrae dal comando il nome del file
A me non riesce: se PARSE ARG trova in linea comando "mms://file", si fa 
confondere dalle due slash e ritorna solo "mms:" :-(
qualche rexxologo ha un aiuto?
piersante

 wrote:
 >il cmd per ora e' fatto cosi':
 >
 >-------------
 >mmsrip %1
 >-------------
 >
 >ma e' chiaro che non posso poi mettere
 >programma \path\%1
e perche' no ? se il programma scrive il file %1 sempre nello stesso
path la variabile e' solo %1


 path la variabile e' solo %1
perche' mmsrip prende in input "%1" e scrive qualcosa che e' un
sottoinsieme di "%1" [chiamiamolo f(%1)] e che io non so cosa e' ma di cui
ne conosco alcune proprieta'... e il programma poi dovrebbe prendere in
input f(%1), questo e' il punto dolente, poi magari ce ne sono anche altri
ma intanto... :-).


 qualche rexxologo ha un aiuto?
BOh vabbe' non e' che voglia rompervi le scatole piu' di tanto... non e'
una cosa urgentissima, magari e' la volta buona che comincio a studiarmi
un po' il rexx :-)


 
ho cercato un po' e pare che sia un bug noto di rexxapi.dll, che ignora 
cosunque inizi con "//" o lo segua.
c'e' un workaround suggerito da Toby Thurston che consiste nel leggere 
la riga comando da un file batch e poi passarlo al rexx:
http://groups.google.it/groups?hl=it&lr=&selm=392459CC.6DFF%40wildfire.dircon.co.uk
Ecco un esempio:
===INIZIO ESEMPIO=====
/* ci vuole un commento in cima per il REXX */
"@echo %1  | rxqueue"
/* legge il parametro saltando un bug nell'interprete rexx in rexxapi.dll */
PARSE PULL parameter
/* legge il parametro della riga comando dalla coda */
splitted=TRANSLATE(parameter, " ", ":")
/* lo divide in due con uno spazio al posto del ":" fra mms e il nome 
del file */
PARSE VAR splitted  word2 filename
/* mette la parte dopo lo spazio in filename */
filename= SUBSTR(filename,3)
/* toglie i due caratteri iniziali (i due "//") */
filename=TRANSLATE(filename, "\", "/")
/* rovescia le slash per il verso giusto ;-) */
SAY filename
/* ora in filename c'e' il nome giusto del file */
====FINE ESEMPIO===
Il codice e' spaghettosissimo e non fa controlli di sorta (ad esempio se 
ci sono piu' parametri, e assume che ci sia un ":" e poi due "//") pero' 
da me funziona.
ad esempio se lo salvo come pippo.cmd e lo lancio con:
pippo mms://path/file.boh
in filename mi trovo "path/file.boh"
ciao,
Piersante

 in filename mi trovo "path/file.boh"
di cui cio' che interessa e' file.boh...
Ti ringrazio, almeno e' gia' qualcosa....


 Ti ringrazio, almeno e' gia' qualcosa....
beh, ovviamente il path si puo' togliere, ma perche' lo vuoi senza?
Piersante

 Ermete wrote:

perche' al path remoto (che se ho capito bene e' contenuto in
"path/file.boh") devo sostituire il path locale che e' sempre lo stesso:
se invio il parametro contenente il filename(=path/file.boh) all'
applicazione, questa ogni volta mi va a cercare il file.boh in un path
diverso... e' anche un motivo per cui i filename non dovrebbero avere tra
i caratteri i segni di /\* ecc. che sono caratteri speciali, perche' l'
applicazione interpreterebbe il segno di "/" come parte del path... cosa
che NON deve fare.


 "path/file.boh") devo sostituire il path locale che e' sempre lo stesso:
eccoti servito:
==============================
/* ci vuole un commento in cima per il REXX */
"@echo %1  | rxqueue"
/* legge il parametro saltando un bug nell'interprete rexx in rexxapi.dll */
PARSE PULL parameter
/* legge il parametro della riga comando */
splitted=TRANSLATE(parameter, " ", "/")
/* lo divide in tante parti sostituendo uno spazio ad ogni slash. 
L'ultima parte contiene il nome del file */
DO WHILE splitted <>""
PARSE VAR splitted  filename splitted
END
/* elimina tutte le parole fra spazi esclusa l'ultima (il nome del file) */
SAY filename
/* ora in filename c'e' il nome giusto del file senza path */
==============================================================
ora
 >pippo.cmd mms://qui/quo/qua/file.boh
restituisce nella variabile "filename"  solo "file.boh"
al solito, non fa nessun controllo sulla stringa in ingresso!
Ne' garantisco che non ci sia un sistema piu' semplice per farlo (il mio 
REXX e' primordiale)
ciao,
piersante