mtb4ever
Goto Top

MP3 Datei Splitten mit Batch Datei

Hallo,

ich habe folgendes Problem ich habe jetzt so an die 60 MP3 Dateien mit je über 60min Laufzeit und wollte mal fragen ob es möglich ist die mit einer Batch Datei zu Splitten so nach 5 Minuten oder eben nach 4MB oder so? Da jede einzelne Datei in einen anderen Ordner liegt und als Zielordner auch immer ein anderer ausgewählt werden soll wär es mit ein Programm ziemlich mühselig.

Datei ist z.B. im Ordner: D:\+++\Mukke\+++\Sttd2007\Audio Al\ und soll nach dem splitten in den Ordner D:\+++\Mukke\+++\Sttd2007_geteilt\Audio Al\.

Liegen alle Ordner unter D:\+++\Mukke\+++\Sttd2007\ (halt nur immer anderer Ordner mit Interpred) und soll immer nach D:\+++\Mukke\+++\Sttd207_geteilt\ (halt auch immer in Ordner mit Interpred).

Hoffe das jemand helfen kann!

Danke im Voraus.

MfG

MTB

Content-Key: 60745

Url: https://administrator.de/contentid/60745

Printed on: April 19, 2024 at 23:04 o'clock

Member: bastla
bastla Jun 06, 2007 at 20:40:22 (UTC)
Goto Top
Hallo MTB4ever!

Damit diese Batchdatei
@echo off & setlocal
set "Basis=D:\+++\Mukke\+++\Sttd2007"  
if not exist "%Basis%_geteilt" md "%Basis%_geteilt"  
pushd "%Basis%_geteilt"  
for /f "delims=" %%i in ('dir /b /ad "%Basis%"') do call :ProcessDir "%%i"  
popd
goto :eof
::mp3splt.exe von: MP3SplitProject
::Download von http://mp3splt.sourceforge.net/mp3splt_page/downloads.php
:ProcessDir
md %1
cd %1
for %%m in ("%Basis%\%~1\*.mp3") do mp3splt.exe -f -t 5.00 "%%m"  
for %%m in (*.mp3) do call :ProcessFile "%%m"  
cd ..
goto :eof
:ProcessFile
set "FName=%~n1"  
set "FName=%FName:'=%"  
for /f "delims=." %%f in ('echo %FName%') do ren %1 "%%f.mp3"  
überhaupt funktionieren kann, brauchst Du die "mp3splt.exe", zB aus der Zip-Version des "MP3SplitProject" (Download hier). Kopiere die "mp3splt.exe", wie in der Installationsanleitung vorgeschlagen, in den Windows-Ordner.

Im Batch ist (wie gewünscht) eine Aufteilung in Stücke zu je 5 Minuten vorgesehen (-t 5.00). Welche Möglichkeiten es sonst noch gäbe, siehst Du in der "MP3Split"-Hilfe ("man.html").

Grüße
bastla
Member: MTB4ever
MTB4ever Jun 07, 2007 at 06:54:41 (UTC)
Goto Top
danke schonmal ... wenn ich von arbeit daheim bin probiere ich das mal aus!

falls es noch fragen/probleme gibt schreibe ich noch mal aber denke das es klappen wird!

MfG

MTB
Member: MTB4ever
MTB4ever Jun 07, 2007 at 07:01:58 (UTC)
Goto Top
kurze frage noch wie heissen die datein nach dem splitten?

also wird aus audio_al.mp3 dann 01_audio_al.mp3 oder audio_al_01.mp3 oder wie wird das ?

Mfg

MTB
Member: bastla
bastla Jun 07, 2007 at 08:41:58 (UTC)
Goto Top
Hallo MTB4ever!

Grundsätzlich wird Beginn und Ende des Teils in Minuten und Sekunden an den ursprünglichen Namen angefügt, also für die ersten 5 Minuten zB "audio_al_000.00_005.00.mp3".

In der ersten (nur oberflächlich getesteten) Fassung hatte ich noch probeweise versucht, beim ersten Punkt des Dateinamens zu schneiden, was aber problematisch wird, wenn es bereits vorher einen Punkt gab (zB "audio_al_feat._video_vic.mp3"). Auch Sonderzeichen wie vor allem "&" müssten dann besonders berücksichtigt werden.

In der neuen Version schneide ich jetzt einfach die letzten 10 Stellen (entsprechen ".00_005.00") des Namens ab.

@echo off & setlocal
set "Basis=D:\+++\Mukke\+++\Sttd2007"  
if not exist "%Basis%_geteilt" md "%Basis%_geteilt"  
pushd "%Basis%_geteilt"  
for /f "delims=" %%i in ('dir /b /ad "%Basis%"') do call :ProcessDir "%%i"  
popd
goto :eof
::mp3splt.exe von: MP3Split Project
::Download von http://mp3splt.sourceforge.net/mp3splt_page/downloads.php
:ProcessDir
md %1 2>nul
cd %1
for %%m in ("%Basis%\%~1\*.mp3") do mp3splt.exe -f -t 5.00 "%%m"  
for /f "delims=" %%m in ('dir /b *.mp3^|find ".00.mp3"') do call :ProcessFile "%%m"  
cd ..
goto :eof
:ProcessFile
set "FName=%~n1"  
set "FName=%FName:~0,-10%"  
ren %1 "%FName%.mp3"  

Grüße
bastla
Member: MTB4ever
MTB4ever Jun 07, 2007 at 08:59:30 (UTC)
Goto Top
Hallo Bastla!

Also heißen die datein dann:

Audio_al_000.mp3
Audio_al_005.mp3
Audio_al_010.mp3
usw.

oder wie is das zu verstehen?

Wäre es möglich die batch so zu fassen das die datein so heißen:

Audio_al_001.mp3
Audio_al_002.mp3
Audio_al_003.mp3
usw.

Wäre nice wenn das gehn würde!

Ja manche Datein haben vorher schon ein Punkt z.B. DJ_P.I.P..mp3.

Muss ich dann auch noch irgendwo den Pfad vom Windows dir angeben oder findet das die Batch Datei automatisch? (Wenn ich die splitt datei da hin lege)

MfG

MTB
Member: bastla
bastla Jun 07, 2007 at 15:14:28 (UTC)
Goto Top
Hallo MTB4ever!

Für eine laufende Nummer sollte es so gehen (die Minutenanzahl kannst Du in der zweiten Zeile festlegen, aber bitte nur ganze Minuten angeben):
@echo off & setlocal
set /a Min=5
set "Basis=D:\+++\Mukke\+++\Sttd2007"  
if not exist "%Basis%_geteilt" md "%Basis%_geteilt"  
pushd "%Basis%_geteilt"  
for /f "delims=" %%i in ('dir /b /ad "%Basis%"') do call :ProcessDir "%%i"  
popd
goto :eof
::mp3splt.exe von: MP3Split Project
::Download von http://mp3splt.sourceforge.net/mp3splt_page/downloads.php
:ProcessDir
md %1 2>nul
cd %1
for %%m in ("%Basis%\%~1\*.mp3") do mp3splt.exe -f -t %Min%.00 "%%m"  
for %%m in (*.00.mp3) do call :ProcessFile "%%m"  
cd ..
goto :eof
:ProcessFile
set "FName=%~n1"  
set /a Nr=(%Min%%FName:~-6,-3%)/%Min%
set "FName=%FName:~0,-13%%Nr:~-3%"  
ren %1 "%FName%.mp3"  
Muss ich dann auch noch irgendwo den Pfad vom Windows dir angeben oder findet das die Batch Datei automatisch? (Wenn ich die splitt datei da hin lege)
Die Antwort kannst Du Dir selber geben, indem Du "path" eingibst: In jedem einzelnen Pfad (zwischen den ;) wird nach der Programmdatei gesucht. Allerdings ist es natürlich auch möglich, im Batch den Pfad mit anzugeben und zB "C:\Tools\mp3splt.exe" zu schreiben.

Grüße
bastla

[Edit] Schleife für umzubenennende Dateien etwas vereinfacht. [/Edit]
Member: MTB4ever
MTB4ever Jun 07, 2007 at 17:03:33 (UTC)
Goto Top
also habe jetzt die rar datei von den mp3splt geladen un alles in windows dir getan

dann die Neu Textdokument.bat erstellt un auch in windows dir mit

@echo off & setlocal
set /a Min=5
set "Basis=D:\+++\Mukke\+++\Sttd2007"  
if not exist "%Basis%_geteilt" md "%Basis%_geteilt"  
pushd "%Basis%_geteilt"  
for /f "delims=" %%i in ('dir /b /ad "%Basis%"') do call :ProcessDir "%%i"  
popd
goto :eof
::mp3splt.exe von: MP3Split Project
::Download von http://mp3splt.sourceforge.net/mp3splt_page/downloads.php
:ProcessDir
md %1 2>nul
cd %1
for %%m in ("%Basis%\%~1\*.mp3") do mp3splt.exe -f -t %Min%.00 "%%m"  
for %%m in (*.00.mp3) do call :ProcessFile "%%m"  
cd ..
goto :eof
:ProcessFile
set "FName=%~n1"  
set /a Nr=(%Min%%FName:~-6,-3%)/%Min%
set "FName=%FName:~0,-13%%Nr:~-3%"  
ren %1 "%FName%.mp3"  
pause
getan .... aber es öffnet sich nur ganz kurz cmd konsole un geht dann nach 1 sek wieder zu


an was könnte das liegen ?
Member: bastla
bastla Jun 07, 2007 at 18:01:09 (UTC)
Goto Top
Hallo MTB4ever!

also habe jetzt die rar datei von den mp3splt geladen un alles in windows dir getan ...
Eigentlich wäre unter dem angegebenen Link eine ".zip"-Datei zu finden ...
Wie auch immer, wichtig ist, dass Du die Datei "mp3splt.exe" aus der gepackten Datei in den Windows-Ordner entpackst.

.... aber es öffnet sich nur ganz kurz cmd konsole un geht dann nach 1 sek wieder zu
an was könnte das liegen ?
Das finden wir am Besten heraus, indem Du die CMD-Konsole über "Start / Ausführen / cmd" öffnest und die Batch-Datei von dort aus startest - dann kannst Du auch die Fehlermeldung(en) sehen. Das von Dir ans Ende gesetzte "pause" wäre übrigens nach der Zeile "popd" besser platziert, da dort eigentlich mit dem folgenden "goto :eof" der Batch beendet wird.

Noch eine Anmerkung: Wenn Du Code postest, kann man diesen besser lesen, wenn Du vorher < code> und nachher < /code> (jeweils ohne die Leerstellen) schreibst.

Grüße
bastla

[/Edit Biber] Wie sinnvoll angeregt, oben auf umformatiert.[/Edit]
Member: MTB4ever
MTB4ever Jun 08, 2007 at 05:23:34 (UTC)
Goto Top
danke hat einwandfrei geklappt!