Discussione:
batch per creare playlist m3u
(troppo vecchio per rispondere)
Everett
2008-07-16 08:07:03 UTC
Permalink
Salve a tutti

un collega ha scritto questo script per me, quello che voglio ottenere è una
playlist m3u chiamata col path delle cartelle

ad esempio : c:\mp3\Sandra Nasic\The signal sarà Sandra Nasic - The
signal.m3u


@echo off

for /R %%f in (*.mp3) do @call :salto %%~pf %%~nxf

:salto

set var1=%1

set var2=%var1:~+1%

if "%var2%"=="~+1" goto fine

set var2=%var2:\=.%

echo %2 >> %var1%%var2%m3u

:fine



Il problema è che il ciclo di for /R che dovrebbe essere ricorsivo sul mio
windows XP SP3(e quello di casa,ufficio ed un altroxp sp3)
non lo è , ma rimane nel path di partenza e và in ciclo di loop.

Questo è il batch che avevo scritto io, funziona a parte il controllo if
ERRORLEVEL
(mi dà sempre errorlevel 0 e non si resetta o aggiorna)


@Echo off

dir /s /ad /b >> lista_dir.log
for /F "eol= tokens=1,2* delims=;" %%i in (lista_dir.log) do call :lista
%%i
:lista
set cart=%*
set nome=%cart:~+3%
set nome=%nome:\=-%
echo %nome%
cd %cart%
dir *.mp3
if ERRORLEVEL 0 (dir *.mp3 /b) >> "%nome%".m3u)
cd ..


Grazie in anticipo

Everett
DøctøR_DøøM
2008-07-16 09:41:03 UTC
Permalink
Post by Everett
Questo è il batch che avevo scritto io, funziona a parte il controllo if
ERRORLEVEL
(mi dà sempre errorlevel 0 e non si resetta o aggiorna)
@Echo off
dir /s /ad /b >> lista_dir.log
for /F "eol= tokens=1,2* delims=;" %%i in (lista_dir.log) do call :lista
%%i
:lista
set cart=%*
set nome=%cart:~+3%
set nome=%nome:\=-%
echo %nome%
cd %cart%
dir *.mp3
if ERRORLEVEL 0 (dir *.mp3 /b) >> "%nome%".m3u)
cd ..
Mi perdonerai se non ho letto tutto né ho fatto alcuna prova. Buttando l'occhio
vedo comunque if ERRORLEVEL 0 che non ha senso:

da if /? si legge:

ERRORLEVEL numero Specifica una condizione vera se l'ultimo programma
eseguito ha restituito un codice di uscita uguale o
maggiore del numero specificato.

Come puoi vedere if errorlevel controlla se è maggiore o uguale al numero.
Perciò errorlevel 0 è sempre vero. La sintassi corretta (sempre sia questo il
solo problema) dovrebbe essere if not errorlevel 1 (o, visto che siamo su xp,
va bene anche if %errorlevel%==1 (in questo caso sì, verifichiamo l'ugualglianza).
Post by Everett
Grazie in anticipo
Ciao

Continua a leggere su narkive:
Loading...