Guten Tag.
Ich hantiere nach wie vor immer noch mit Audiodateien herum. Dabei bin ich auf folgendes Problem gestoßen:
Wenn ich mehrere Dateien die in Unterverzeichnisse geordnet sind, konvertieren will... Dann ensteht folgendes Problem.
Die FOR Schleife erwischt zwar rekursiv alle Dateien um sie zu konvertieren. Aber leider werden die Dateien nicht mehr den Verzeichnissen zugeordnet.
Gibt es eine Möglichkeit die Batch anzuweisen Ordner zu erstellen und dann die Dateien dorthin zu verschieben ? Allerdings sollte das auch noch dynamisch sein.
Das heißt: Es sollen die Ursprungsverzeichnisse erkannt werden und neu erstellt werden.
Ist dies mit Batch noch möglich oder verlange ich da zuviel ?
Vielen Dank schon mal für eure Tipps.
EDIT: Das ist meine Batchdatei bisher...
@ECHO OFF
SET WORK=%~dp0
SET SSRC=
SET QUELLPFAD="Quelle"
SET ZIELPFAD="Ziel(MP3)"
CLS
IF NOT EXIST "%WORK%Programme\MADbundle\madplay.exe" (
START /W W32popup.exe "Das Programm 'Madplay' befindet sich nicht im angegebenen Pfad !" /C:"Madplay.exe nicht gefunden" /I:I /B:OK
GOTO :ENDE
)
IF NOT EXIST "%WORK%Programme\SSRC\ssrc_hp.exe" (
START /W W32popup.exe "Das Programm 'SSRC_hp.exe' befindet sich nicht im angegebenen Pfad !" /C:"SSRC_hp.exe wurde nicht gefunden" /I:I /B:OK
GOTO :ENDE
)
IF NOT EXIST "%WORK%Programme\Lame\lame.exe" (
START /W W32popup.exe "Das Programm 'Lame' befindet sich nicht im angegebenen Pfad !" /C:"Lame.exe nicht gefunden" /I:I /B:OK
GOTO :ENDE
)
IF NOT EXIST "Temp" md Temp
START /W W32popup.exe "Moechten Sie eine Umwandlung mit Anpassung der Lautstaerke durchfuehren ?" /C:"Anpassung der Lautstaerke" /I:Q /B:YNC
IF "%ERRORLEVEL%"=="3" SET SSRC=--rate 44100 --bits 16 --twopass --normalize
IF "%ERRORLEVEL%"=="2" SET SSRC=--rate 44100 --bits 16 --twopass
IF "%SSRC%"=="" GOTO :ENDE
ECHO %SSRC%
FOR /R %QUELLPFAD% %%A IN (*.mp3) DO CALL :WANDLE "%%~fA" %ZIELPFAD%
GOTO :DEL
:WANDLE
ECHO ..................................................................................................................
ECHO ICH WANDLE %1
ECHO NACH "%~2\%~n1"
ECHO.
ECHO.
:MADPLAY
ECHO ...MADPLAY extrahiert.........................................................................................
ECHO.
"%WORK%Programme\MADbundle\madplay.exe" -b 24 -G -a -5 -S -v -o wave:"%WORK%Temp\%~n1.wav" %1
IF NOT EXIST "Temp\%~n1.wav" (
START /W W32popup.exe "Leider ist bei der Bearbeitung von %~n1.wav ein Fehler passiert !" /C:"MADPLAY Fehler" /I:I /B:OK
GOTO :EOF
)
ECHO.
:SSRC
ECHO ...SSRC normalisiert.........................................................................................
"%WORK%Programme\SSRC\ssrc_hp.exe" %SSRC% "%WORK%Temp\%~n1.wav" "%WORK%Temp\%~n1_SSRC.wav"
IF NOT EXIST "Temp\%~n1_SSRC.wav" (
START /W W32popup.exe "Leider ist bei der Bearbeitung von %~n1_SSRC.wav ein Fehler passiert !" /C:"SSRC Fehler" /I:I /B:OK
GOTO :EOF
)
ECHO.
CLS
:LAME ...Lame komprimiert.............................................................................................
ECHO.
"%WORK%Programme\LAME\lame.exe" --preset extreme -h -m s -p "%WORK%Temp\%~n1_SSRC.wav" "%~2\%~n1.mp3"
IF NOT EXIST "%~2\%~n1.mp3" (
START /W W32popup.exe "Leider ist bei der Bearbeitung von %~n1.mp3 ein Fehler passiert !" /C:"LAME Fehler" /I:I /B:OK
GOTO :EOF
)
ECHO.
CLS
GOTO :EOF
:DEL
START /W W32popup.exe "Sollen die temporaeren Dateien geloescht werden ?" /C:"Temp Inhalt loeschen ?" /I:Q /B:YN
IF "%ERRORLEVEL%"=="3" del Temp
IF "%ERRORLEVEL%"=="2" GOTO :Ende
:ENDE
ECHO Vorgang beendet..................
Pause
Alles anzeigen