Mit Batchprogrammierung Dateien in Ordner entsprechend ihres Namensanfangs einsortieren
Nach Festplattenwiederherstellung muss ich 40000 Dateien umsortieren.
Wer kann mir helfen
Hallo,
ich habe auf meine von mir aus versehen formatierten Festplatte 40000 Musikdateien (mp3) retten können. Das Wiederherstellungsprogramm hat die Dateien in folgende Struktur geschrieben:
AC_DC - TNT
AC_DC - Hiway to hell
AC_DC - ....
Die Ärzte - Westerland
Die Ärzte - ...
(liegen alphabetisch sortiert vor)
Ich möchte jetzt für jeden Interpreten ein Verzeichnis anlegen und die Musikdateien reinkopieren.
Im Beispiel oben wären die Verzeichnisse
AC_DC
Die Ärzte,
gefüllt mit den zugehörigen Musikdateien. Die Dateinamen enthalten Leerzeichen. Interpreten und Titel sind durch - getrennt. Manchmal fehlt ein Interpret, dann enthält der Dateiname keinen -. In diesem Fall soll die Datei übersprungen werden.
Kann mir jemand helfen beispielsweise mit einer Batchdatei, dass ich nicht alles mit der Hand umsortieren muss. Ich habe mal angefangen und bin an einem Abend immerhin mit dem Buchstaben A fertig geworden.
Wer kann mir helfen
Hallo,
ich habe auf meine von mir aus versehen formatierten Festplatte 40000 Musikdateien (mp3) retten können. Das Wiederherstellungsprogramm hat die Dateien in folgende Struktur geschrieben:
AC_DC - TNT
AC_DC - Hiway to hell
AC_DC - ....
Die Ärzte - Westerland
Die Ärzte - ...
(liegen alphabetisch sortiert vor)
Ich möchte jetzt für jeden Interpreten ein Verzeichnis anlegen und die Musikdateien reinkopieren.
Im Beispiel oben wären die Verzeichnisse
AC_DC
Die Ärzte,
gefüllt mit den zugehörigen Musikdateien. Die Dateinamen enthalten Leerzeichen. Interpreten und Titel sind durch - getrennt. Manchmal fehlt ein Interpret, dann enthält der Dateiname keinen -. In diesem Fall soll die Datei übersprungen werden.
Kann mir jemand helfen beispielsweise mit einer Batchdatei, dass ich nicht alles mit der Hand umsortieren muss. Ich habe mal angefangen und bin an einem Abend immerhin mit dem Buchstaben A fertig geworden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 183616
Url: https://administrator.de/forum/mit-batchprogrammierung-dateien-in-ordner-entsprechend-ihres-namensanfangs-einsortieren-183616.html
Ausgedruckt am: 23.04.2025 um 10:04 Uhr
5 Kommentare
Neuester Kommentar
Hi.
Ein Skript wäre ja nicht eben kompliziert, aber so richtig will es nur klappen, wenn die Bandnamen ein einheitliches Format hätten (alle haben ein Wort oder alle zwei, oder...). Somit muss für mich Kommandozeilen-non-Pro Trick 17 herhalten. Geht so:
dir /b c:\Rettungsverzeichnis >%temp%\inhalt.txt
Dann öffnest Du die Datei %temp%\inhalt.txt mit notepad++ (muss schon ein besserer Editor sein) und machst Folgendes: Du schneidest alles hinter dem Bindestrich ab, indem Du notepad folgende Einstellung beim Suchen und ersetzen mitgibst: http://250kb.de/KQcP2TA
Danach speichere die Datei inhalt.txt erneut und erstelle daraus dann über den Befehl
for /f "tokens=1,2,3,4,5" %a in (%temp%\inhalt.txt) do md "c:\rettungsverzeichnis\%a %b %c %d %e"
die Verzeichnisse. Das passt schonmal ganz gut für Interpreten, deren Namen ein bis fünf (deshalb %a...%e) Wörter nicht überschreiten - bei Bedarf anpassen.
Hast Du im Bandnamen einen Bindestrich, werden zusätzliche Verzeichnisse erstellt, c'est la vie.
Natürlich geht das auch ohne notepad++, aber das würde bei mir jetzt zu lange dauern
Die Pros liegen, wenn nicht derzeit im Bett, jetzt wahrscheinlich schon lachend unterm Tisch
Ach ja, das Einsortieren wollten wir ja auch noch machen

Ein Skript wäre ja nicht eben kompliziert, aber so richtig will es nur klappen, wenn die Bandnamen ein einheitliches Format hätten (alle haben ein Wort oder alle zwei, oder...). Somit muss für mich Kommandozeilen-non-Pro Trick 17 herhalten. Geht so:
dir /b c:\Rettungsverzeichnis >%temp%\inhalt.txt
Dann öffnest Du die Datei %temp%\inhalt.txt mit notepad++ (muss schon ein besserer Editor sein) und machst Folgendes: Du schneidest alles hinter dem Bindestrich ab, indem Du notepad folgende Einstellung beim Suchen und ersetzen mitgibst: http://250kb.de/KQcP2TA
Danach speichere die Datei inhalt.txt erneut und erstelle daraus dann über den Befehl
for /f "tokens=1,2,3,4,5" %a in (%temp%\inhalt.txt) do md "c:\rettungsverzeichnis\%a %b %c %d %e"
die Verzeichnisse. Das passt schonmal ganz gut für Interpreten, deren Namen ein bis fünf (deshalb %a...%e) Wörter nicht überschreiten - bei Bedarf anpassen.
Hast Du im Bandnamen einen Bindestrich, werden zusätzliche Verzeichnisse erstellt, c'est la vie.
Natürlich geht das auch ohne notepad++, aber das würde bei mir jetzt zu lange dauern
Die Pros liegen, wenn nicht derzeit im Bett, jetzt wahrscheinlich schon lachend unterm Tisch
Ach ja, das Einsortieren wollten wir ja auch noch machen
Hallo annaGe und willkommen im Forum!
Mit einem Batch ginge das etwa so:
Zeile 2 musst Du natürlich an Deine Gegebenheiten anpassen (kann auch erst mal ein Testordner mit nur wenigen Dateien sein), und wegen der "
Grüße
bastla
Mit einem Batch ginge das etwa so:
@echo off & setlocal
set "Ordner=D:\Musik"
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /b "* - *.mp3"') do call :ProcessFile "%%i"
popd
pause
goto :eof
:ProcessFile
set "InterpretTitel=%~nx1"
for /f "delims=:" %%a in ("%InterpretTitel: - =:%") do set "Interpret=%%a"
echo md "%Interpret%" 2>nul
echo move %1 "%Interpret%"
goto :eof
echo
" am Beginn der Zeilen 13 und 14 werden weder die Ordner erstellt, noch die Dateien verschoben, sondern es werden nur (zum Testen) die jeweiligen Befehle angezeigt; wenn das Ergebnis für Dich gut aussieht, einfach die beiden genannten "echo
" entfernen und damit den Batch "scharf" schalten ...Grüße
bastla
Moin,
also ich finde da schon kompliziert:
mit einem Musikverwaltungsprogramm liest Du einfach das MP3 Tag oder den Dateinamen aus, definierst wie die Dateien einsortiert werden sollen, bspw. nach Interpret\Jahr - Album\Datei .... Nacharbeiten wird man auf jeden Fall dürfen ....
Wobei Du auch noch das Format der Datei in der Form Interpret - Song Nr - Titel vorgeben kannst.
Die batch Lösung von ist natürlich schick (und die werde ich mir mal für andere Gelegenheiten merken
) aber da würde ich eben anders vorgehen. Man braucht ja ned das Rad neu erfinden.
Gruß Nagus
also ich finde da schon kompliziert:
mit einem Musikverwaltungsprogramm liest Du einfach das MP3 Tag oder den Dateinamen aus, definierst wie die Dateien einsortiert werden sollen, bspw. nach Interpret\Jahr - Album\Datei .... Nacharbeiten wird man auf jeden Fall dürfen ....
Wobei Du auch noch das Format der Datei in der Form Interpret - Song Nr - Titel vorgeben kannst.
Die batch Lösung von ist natürlich schick (und die werde ich mir mal für andere Gelegenheiten merken
Gruß Nagus