Discussione:
Sintassi di CALL
(troppo vecchio per rispondere)
Febo
2007-09-20 15:16:09 UTC
Permalink
Dal prompt Dos di WinXP scrivo listamp3 e il batch ListaMP3.bat esegue
soltanto la prima riga di istruzioni.
-------------------------
ListaMP3.bat
-------------------------
@echo off
cls
dir /O:e/s/b > C:\"Documents and Settings"\Febo\Desktop\Lavoro\listamp3.m3u
CALL C:\"Documents and Settings"\Febo\Desktop\Lavoro\renM3U.bat
exit

La sintassi di CALL è sicuramente sbagliata perchè Renm3u.bat funziona se
lanciato da solo. Ho provato a togliere l'estensione bat dalla chiamata ma
non cambia niente.

In alternativa ho anche scritto nel batch la riga

cd C:\"Documents and Settings"\Febo\Desktop\Lavoro
seguita da

CALL RENM3U
ma il risultato è il medesimo. C'è qualcuno che ne sa più di me?
---------------------------------------------------------------

-------------------------
RENM3U.bat
-------------------------
@echo off
if exist listamp3.m3u GOTO Rinomina
if not exist listamp3.m3u GOTO Nonesiste
:RINOMINA
ren listamp3.m3u %~n0).m3u
GOTO Fine
:NONESISTE
*.txt > il_file_listamp3.m3u_non_esiste.txt
GOTO Fine
:FINE
Renaissance
2007-09-21 11:02:18 UTC
Permalink
Post by Febo
CALL C:\"Documents and Settings"\Febo\Desktop\Lavoro\renM3U.bat
CALL "C:\Documents and Settings\Febo\Desktop\Lavoro\renM3U.bat"

bye G.L.
--
Renaissance, aka Gian Luca Sole
Per rispondere, togli nospam letto al contrario, e cambia nazione.
"E' assolutamente evidente che l'arte del cinema si ispira
alla vita, mentre la vita si ispira alla TV" - Woody Allen
DøctøR_DøøM
2007-09-23 09:42:21 UTC
Permalink
Post by Renaissance
Post by Febo
CALL C:\"Documents and Settings"\Febo\Desktop\Lavoro\renM3U.bat
CALL "C:\Documents and Settings\Febo\Desktop\Lavoro\renM3U.bat"
Credo che le due sintassi siano equivalenti. In entrambi i casi viene chiamato
renM3U.bat (che viene eseguito nella directory corrente, non in Lavoro\).

Tuttavia, siccome Febo ci dice che renm3u funziona se lanciato da solo,
credo che tale file sia nella directory corrente (e non in lavoro).

Se è così può fare solo call renm3u.bat (e, da dentro a questo
mettere cd C:\"Documents and Settings"\Febo\Desktop\Lavoro).

Se non si risolve così, servono maggiori dettagli (dove sono i due
batch, da che directory vengono lanciati e i messaggi di errore).

Sempre a proposito di RENM3U.bat, che senso ha l'istruzione
*.txt > il_file_listamp3.m3u_non_esiste.txt? (credo manchi
un echo qualcosa...)

Ciao
Febo
2007-09-24 17:10:59 UTC
Permalink
In effetti la posizione delle virgolette non cambia niente. Racchiudere
tutto il percorso tra virgolette è più pratico ma il risultato è lo stesso.

I due batch fanno parte di un processo di automatizzazione che estrae da
ogni cartella di un dvd la lista degli mp3 (listamp3.m3u), e rinomina il
file m3u con il nome della cartella stessa. Ad esempio, nel dvd c'è la
cartella VascoRossi che contiene 10 mp3. ListaMP3.bat estrae l'elenco degli
mp3 dalla cartella del dvd e colloca il file listamp3.m3u nella cartella
C:\"Documents and Settings"\Febo\Desktop\Lavoro. In questa cartella c'è già
il file VascoRossi.bat che rinomina "listamp3.m3u" in "VascoRossi.m3u"
tramite il codice %~n0 e aggiunge )

La sequenza é:
1) Rinomina di RENM3U.bat con il nome della cartella in cui risiedono gli
mp3 nel DVD (VascoRossi.bat),
2) Apertura finestra Dos sulla cartella nel DVD
3) Lancio di ListaMP3.bat che crea listamp3.m3u nella cartella di lavoro,
quella in C.

A questo punto CALL dovrebbe richiamare il batch che rinomina listamp3.m3u
in VascoRossi.m3u.

Listamp3.bat risiede nella cartella C:\Batch specificata in Autoexec.bat
(altrimenti non funzionerebbe, per quanto ne so), e RENM3U.bat (che cambia
nome ogni volta) si trova in C, nella cartella di lavoro insieme a
listamp3.m3u.

"*.txt > il_file_listamp3.m3u_non_esiste.txt" ha la stessa funzione di Echo,
dato che durante il processo la finestra Dos non si vede mai, se non quando
viene aperta. Se listamp3.m3u non viene creata, nella cartella di lavoro ci
sarà "il_file_listamp3.m3u_non_esiste.txt"

In ogni caso ho risolto il problema togliendo CALL da ListaMP3.bat e
lanciando RENM3U.bat per conto proprio, ma nella sintassi di CALL c'è
qualcosa che non va. Dovrei provare in DOS puro per vederne l'effetto, forse
in WinXP funziona in modo diverso.

Comunque grazie a tutti per l'interessamento.

Febo
Post by DøctøR_DøøM
Post by Renaissance
Post by Febo
CALL C:\"Documents and Settings"\Febo\Desktop\Lavoro\renM3U.bat
CALL "C:\Documents and Settings\Febo\Desktop\Lavoro\renM3U.bat"
Credo che le due sintassi siano equivalenti. In entrambi i casi viene chiamato
renM3U.bat (che viene eseguito nella directory corrente, non in Lavoro\).
Tuttavia, siccome Febo ci dice che renm3u funziona se lanciato da solo,
credo che tale file sia nella directory corrente (e non in lavoro).
Se è così può fare solo call renm3u.bat (e, da dentro a questo
mettere cd C:\"Documents and Settings"\Febo\Desktop\Lavoro).
Se non si risolve così, servono maggiori dettagli (dove sono i due
batch, da che directory vengono lanciati e i messaggi di errore).
Sempre a proposito di RENM3U.bat, che senso ha l'istruzione
*.txt > il_file_listamp3.m3u_non_esiste.txt? (credo manchi
un echo qualcosa...)
Ciao
Continua a leggere su narkive:
Loading...