Coverbilder in Überverzeichnisse kopieren
Hallo,
ich habe eine Musiksammlung mit mehr als 2.000 Titeln.
Nun habe ich bei der App meines neuen Verstärkers festgestellt, dass in der App keine Coverbilder in den Überverzeichnissen angezeigt werden, sondern nur in den jeweiligen Verzeichnissen darunter.
Daher würde ich nun gerne je ein Coverbild in den jeweiligen Überordner kopieren, was händisch natürlich viel zu viel Arbeit ist.
Ich beschreibe hier mal kurz meine Verzeichnis-Struktur:
MUSIK > A - E > Künstler > Album
Bei der zweiten Ebene gibt es folgende weitere Verzeichnisse:
F - J
K - O
P - T
U - Z
Übertragen werden soll also jeweils die Datei "cover.jpg" aus der Ebene "Album" in die jeweilige Ebene darüber.
Natürlich steht dort nicht jeweils "Album", sondern der jeweilige Name des Albums.
Hier mal ein Beispiel:
MUSIK > A - E > AC-DC > Back in Black > cover.jpg
Gibt es eine Möglichkeit - z.B. mit einer Batch-Datei - die Coverdateien in allen Verzeichnissen in die nächsthöhere Ebene zu kopieren?
Danke und Grüße,
BN
ich habe eine Musiksammlung mit mehr als 2.000 Titeln.
Nun habe ich bei der App meines neuen Verstärkers festgestellt, dass in der App keine Coverbilder in den Überverzeichnissen angezeigt werden, sondern nur in den jeweiligen Verzeichnissen darunter.
Daher würde ich nun gerne je ein Coverbild in den jeweiligen Überordner kopieren, was händisch natürlich viel zu viel Arbeit ist.
Ich beschreibe hier mal kurz meine Verzeichnis-Struktur:
MUSIK > A - E > Künstler > Album
Bei der zweiten Ebene gibt es folgende weitere Verzeichnisse:
F - J
K - O
P - T
U - Z
Übertragen werden soll also jeweils die Datei "cover.jpg" aus der Ebene "Album" in die jeweilige Ebene darüber.
Natürlich steht dort nicht jeweils "Album", sondern der jeweilige Name des Albums.
Hier mal ein Beispiel:
MUSIK > A - E > AC-DC > Back in Black > cover.jpg
Gibt es eine Möglichkeit - z.B. mit einer Batch-Datei - die Coverdateien in allen Verzeichnissen in die nächsthöhere Ebene zu kopieren?
Danke und Grüße,
BN
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61774648107
Url: https://administrator.de/contentid/61774648107
Ausgedruckt am: 18.11.2024 um 23:11 Uhr
15 Kommentare
Neuester Kommentar
Powershell
Batch (ins Root des Musikordners legen und starten)
Get-ChildItem -Path 'D:\Musik\*\*\*\cover.jpg' -File | copy-item -destination {"$($_.Directory.Parent.FullName)\$($_.Directory.Name).jpg"} -verbose
@echo off &setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /s /a-d "%~dp0cover.jpg"') do (
set "folder=%%~dpa"
for /f "delims=" %%b in ("!folder:~0,-1!") do set "parent=%%~dpb" & set "album=%%~nxb.jpg"
copy "%%a" "!parent!!album!"
)
Danke und Grüße,
Bitte und Gruß
Das "a-d" hat nichts mit den Ordnernamen zu tun! Das ist eine Anweisung an den Dir-Befehl
keine Ordner sondern nur Dateien zu suchen (nur die cover.jpg's).
Kannst du hier nachlesen https://learn.microsoft.com/de-de/windows-server/administration/windows- ...
keine Ordner sondern nur Dateien zu suchen (nur die cover.jpg's).
Kannst du hier nachlesen https://learn.microsoft.com/de-de/windows-server/administration/windows- ...
Und... die Batch soll direkt im Verzeichnis "MUSIK" liegen?
Ja. Kann man aber auch feste Pfade hinterlegen wenn du das lieber willst, je nach Gusto ...
Machen kann man alles, lass dir doch bitte aber erst mal etwas Zeit bis du wirklich alles bedacht hast, ich fange hier ungerne 20 mal von vorne an ...🤐
@echo off
set "folder=D:\Musik"
powershell -EP Bypass -C "Get-ChildItem -Path '%folder%\*\*' -Directory | foreach {Get-ChildItem $_.Fullname -Recurse -include 'folder.jpg','cover.jpg' | select -First 1 | copy-item -destination {join-path $_.Directory.Parent.FullName 'cover.jpg'} -verbose}"
Tschüssikowski 🖖
Habe jetzt über die Windows Power Shell eine ".psi"-Datei erstellt mit dem folgenden Inhalt
Och nee, das ist doch ne Batch ...., siehst du doch an dem @echo off....Und "psi" liest du auf deinem Manometer 🤪nicht in PS.
Wenn du's Plain PowerShell haben willst dann so
Get-ChildItem -Path 'D:\Musik\*\*' -Directory | foreach {Get-ChildItem $_.Fullname -Recurse -include 'folder.jpg','cover.jpg' | select -First 1 | copy-item -destination {join-path $_.Directory.Parent.FullName 'cover.jpg'} -verbose}
Fehlt ja auch der Doppelpunkt im Pfad ...
"Musik" Ordner nach deiner Beschreibung nicht vergessen
Oh man schwere Geburt mit dir...
Wenigstens Code mal lesen und verstehen wäre als erstes angesagt.
Copy n Paste bringt dich nicht weiter.
"Musik" Ordner nach deiner Beschreibung nicht vergessen
set "folder=H:\Musik"
Oh man schwere Geburt mit dir...
Wenigstens Code mal lesen und verstehen wäre als erstes angesagt.
Copy n Paste bringt dich nicht weiter.