Batch Datei funktioniert noch nicht (Ratschlag erwünscht)

Klendathu

Cadet 3rd Year
Registriert
März 2017
Beiträge
45
Hallo Leute,

Ich versuche erst seit kurzem batch-dateien zu schreiben und ich habe da noch einige probleme...

mit folgenden befehlen will ich jeweils 10 mp3s zu einem zusammenführen.
alleinstehend funktioniert der copy /b befehl auch, aber er führt alle im ordner enthaltenen mp3s zu einer einzigen datei zusammen. deswegen will ich nur jeweils 10 dateien zu einer einzigen datei zusammenführen.

hier der befehlssatz:

@Echo off
set counter=0
:loop
for /f "delims=." %%a in ('dir /b /s .') do copy /b "%%~a*.mp3" merge1.mp3
if %counter% equ 10 goto :EOF
set /a counter+=1
echo %counter%
goto loop

es läuft leider in endlosschleife. außerdem scheint immer nur der letzte kopierte mp3 die enddatei auszumachen und nicht 10 zu einer einzelnen datei kopierten mp3s... ich bin ein bisschen ratlos...

Vielen Dank schon mal

Lg Klen
 
Naja, wo sind deine + Zeichen?

Syntax:

copy /b DATEI1 + DATEI2 + DATEI3 + ... + DATEIX ZEILDATEI

Du kopierst mit /b immer nur eine Datei zur Zieldatei, deswegen dein Ergebnis.
 
Da MP3-Dateien keine Rohdaten sind, funktioniert das so nicht, sprich es kommt keine valide MP3-Datei heraus.
Mit mp3DirectCut kann man zueinander kompatible MP3s ohne Neukodierung konkatenieren.
 
Also wie gesagt, das Programm funktioniert, wenn ich es nicht mit der Schleife kodiere.
Auch kann ich beliebig viele mp3s zsammenführen und die mp3 datei auch abspielen.

es ging mir bei der frage darum, wie ich es schaffe lediglich 10 zusammenzuführen.

Danke schonmal für die Ratschläge :-)
 
ich kann mir nicht vorstellen dass das mit copy funktioniert, oder zumindest nicht immer. Du kopierst doch damit auch von jeder Datei die Metadaten und IDv3 tags falls vorhanden.
Unter Linux nimmt man dafuer z.B. ffmpeg und kann dann noch festlegen von welcher Datei man die Metadaten nehmen will.

Aber gut, falls du keine Metadaten hast, dann geht es evtl. - klingt trotzdem komisch.

Konntest du das Problem jetzt loesen mit dem Hinweis von @d2boxSteve ? Eine Rueckmeldung waere immer ganz hilfreich ...
 
Hi Leute,

Steve und abc... Ja so funktioniert es prinzipiell, wenn ich das Pluszeichen verwende. Danke für die Hilfe!

Doch werden jetzt immer noch nicht alle mp3s mit der For Scheife erfasst. Es wird auf 90% aller mp3s stille kopiert, aber bei einigen wenigen funktioniert es nicht.

Könnte mir da noch jemand behilflich sein vielleicht?

for /f "delims=." %%a in ('dir /b /s .') do copy /b "%%~a*.mp3" + silence.mp "%%~a*.mp3"


Danke schon mal

Klen
 
Weißt du denn welche nicht kopiert werden? Also sind es immer die gleichen?
 
in meinem probeordner sind es immer die selben. sie haben meisens einen "." irgendwo im Dateinamen.
 
Dann ist schlicht und ergreifend dein Filter für dir nicht korrekt bzw. der Delimiter trennt die Dateinamen anders als du es eigentlich möchtest. Bevor man sowas mit der finalen Operation ausführt und dadurch unter Umständen beliebigen Unsinn produziert, sollte man stattdessen erstmal ganz banal prüfen ob die Schleife bei einem Durchlauf alle gewünschten Dateien erfasst. Das heißt im Klartext, dass du zunächst einfach mal mittels echo %%a schauen solltest ob die ausgegebene Liste vollständig ist. Sollte das nicht der Fall sein, musst du deine dir-Anweisung so anpassen, dass sie auch die fehlenden Dateien erwischt.

In deinem Falle trennst du den Dateinamen bei ganz platt bei "." und hängst dann innerhalb der Schleife .mp3 an. Wenn die Datei nun mehrere "." enthält, einmal im Dateinamen und einmal vor der Dateiendung, dann wird der resultierende Dateiname nicht stimmen. Aus "Queen.WeWillRockYou.mp3" wird dann eben "Queen.mp3" und die Datei gibt es nicht.


*edit
Im übrigen ist das schon dein 4. Thread zu deinen Batch-Gehversuchen. In einem der anderen Threads hatte ich dir schon dazu geraten, dich nach Alternativen umzuschauen, wenn du mit Batch überfordert bist. Batch ist und bleibt eine Krücke und ist das absolute Gegenteil von intuitiv. Du dokterst nu schon seit Wochen daran rum und machst bei jedem Schritt einen neuen Thread auf, weil du vor dem nächsten Problem stehst. Batch ist vielleicht einfach nicht das richtige Werkzeug für dein Vorhaben - für alle deine Vorhaben.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: abcddcba
Zurück
Oben