Everett
2008-07-16 08:07:03 UTC
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
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