annage
Goto Top

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.

Content-Key: 183616

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

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: Nagus
Nagus 16.04.2012 um 23:19:23 Uhr
Goto Top
Moin,
warum so kompliziert?

Nimm bspw. Mediamonkey oder Musicbee und lasse die Dateien einlesen. Bei Mediamonkey kannst Du dann alle Dateien aus dem Tag einsortieren lassen, wobei Du den Filter bzw. die Kriterien gut vorgeben kannst. Geht glaube ich bei MusicBee auch ...

Gruß
Nagus
Mitglied: DerWoWusste
DerWoWusste 16.04.2012 um 23:50:50 Uhr
Goto Top
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 face-sad
Die Pros liegen, wenn nicht derzeit im Bett, jetzt wahrscheinlich schon lachend unterm Tisch face-smile
Ach ja, das Einsortieren wollten wir ja auch noch machen face-smile face-smile
Mitglied: bastla
bastla 16.04.2012 um 23:54:45 Uhr
Goto Top
Hallo annaGe und willkommen im Forum!

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
Zeile 2 musst Du natürlich an Deine Gegebenheiten anpassen (kann auch erst mal ein Testordner mit nur wenigen Dateien sein), und wegen der "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
Mitglied: Nagus
Nagus 17.04.2012 um 17:21:49 Uhr
Goto Top
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 face-smile ) aber da würde ich eben anders vorgehen. Man braucht ja ned das Rad neu erfinden.

Gruß Nagus
Mitglied: annaGe
annaGe 17.04.2012 um 21:59:35 Uhr
Goto Top
Hallo Bastla,

vielen vielen Dank! Das klappte auf Anhieb und hat mir einige Nächte Arbeit erspart!

Einen schönen Abend noch!

annaGe