tbombadil
Goto Top

Ordnerstruktur auflösen, neue erstellen, Dateien verschieben

Hi Leute,

ich sortiere gerade mein Musikarchiv und komme irgendwie nicht weiter, weil alles ewig dauert. Ich hatte mal eine Batchdatei, die die meisten Dinge automatisch gemacht hat, aber die ist beim letzten Crash verloren gegangen (lag auf C: ...).

Also folgendes:
In einem Ordner befindet sich pro Musikalbum ein Ordner (Bspw. "Album1", "Album2" usw.).
In jedem Album-Ordner sind entweder Unterordner oder auch nicht (bspw. "Unter1", "Unter2" usw.).

Was ich jetzt immer per Hand mache und wofür ich lieber ein Script hätte (Beispiel für den Ordner Album1, muss ich eben für jeden Ordner machen):

1. alle Dateien aus den Unterordnern ("Unter...") in den übergeordneten Album-Ordner (Album1) verschieben und die Unterordner löschen.
2. alle *.m3u-Dateien löschen
3. einen Unterordner Album1\_misc\ erstellen und die Datei tn_cover.jpg (so sie denn vorhanden ist) aus dem Ordner Album1 dorthin verschieben.
4. wenn weitere jpg- oder png-Dateien vorhanden sind, einen Unterordner Album1\_artwork\ erstellen und diese dorthin verschieben.
5. alle restlichen Dateien außer *.flac in den Unterordner Album1\_misc verschieben
6. das dann auch für die anderen Ordner (Album2 bis AlbumX)
7. Fertig.

Ich habe leider überhaupt keinen Plan, wie ich das angehen soll. Hat vielleicht einer von euch Cracks da draußen eine Idee oder Hilfe parat?

Gruß,
TBombadil

Content-ID: 79052

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

Ausgedruckt am: 25.11.2024 um 13:11 Uhr

bastla
bastla 24.01.2008 um 15:34:35 Uhr
Goto Top
Hallo TBombadil und willkommen im Forum!

Der folgende Batch ist nur oberflächlich getestet, daher bitte zuerst mit Kopien arbeiten ...
@echo off & setlocal
set "Ordner=D:\Ganz viel Musik"  
for /d %%i in ("%Ordner%\*.*") do (  
	pushd "%%~fi"  
	echo Bearbeite: %%i
	for /d %%a in (*.*) do move /-Y "%%a\*.*" . >nul && rd "%%a"  
	del *.m3u 2>nul
	md _misc 2>nul
	if exist "tn_cover.jpg" move /-Y "tn_cover.jpg" _misc\ >nul  
	dir *.jpg *.png >nul && (md _artwork 2>nul && move /-Y *.jpg _artwork\ && move /-Y *.png _artwork\) >nul
	for /f "delims=" %%f in ('dir /b /a-d^|findstr /v /e /i ".flac"') do move /-Y "%%f" _misc\  
	popd
)
Anmerkungen:

Anzupassen ist natürlich der Startordner "D:\Ganz viel Musik".

Der Schalter "/-Y" nach den einzelnen "move"-Befehlen soll verhindern, dass beim Verschieben schon existierende gleichnamige Dateien im Zielordner ohne Rückfrage überschrieben werden.

Es wird nur eine Unterordnerebene behandelt.

Grüße
bastla
TBombadil
TBombadil 24.01.2008 um 16:33:16 Uhr
Goto Top
Hi, danke für die Mühe!
Wenn ich mir das so angucke, hätte es ewig gebraucht, bis ich sowas fertig gebracht hätte!

Funktioniert auch einwandfrei, nur die *.png werden nicht verschoben.

Gruß,
TBombadil
Biber
Biber 24.01.2008 um 16:46:05 Uhr
Goto Top
Moin TBombadil,

wenn keine *.jpg-Dateien gefunden werden, dann werden keine *.png-Dateien behandelt.

Streiche:
.. && move /-Y *.jpg _artwork\ && move ...(die *.png's)

Setze:
.. && move /-Y *.jpg _artwork\ & move ...

Grüße
Biber
TBombadil
TBombadil 27.01.2008 um 20:51:03 Uhr
Goto Top
Cool, funktioniert einwandfrei! Vielen Dank nochmal!