Salut,
j'ai fait un exemple de script qui fonctionne en powershell avec l'arbo que tu décris (et que ça soit toujours cover1000.jpg le nom du fichier bien sur):
Code:
-dossier "mes disques"
--- Artiste1 - NomAlbum1 (peu importe le nom)
------ Fichier1.mp3
------ Fichier2.mp3
------ cover1000.jpg
--- Artiste1 - NomAlbum2 (peu importe le nom)
------ Fichier1.mp3
------ Fichier2.mp3
------ cover1000.jpg
--- Artiste2 - NomAlbum1 (peu importe le nom)
------ Fichier1.mp3
------ Fichier2.mp3
------ cover1000.jpg
--- Artiste3 - NomAlbum1 (peu importe le nom)
------ Fichier1.mp3
------ Fichier2.mp3
------ cover1000.jpg
etc...
Le script PowerShell à copier coller (toutes les lignes dans la balise CODE) dans un fichier .ps1, modifier les lignes concernant les chemins sources et destination et à exécuter (clic-droit exécuter le PowerShell).
Pas de destruction de l'existant, au pire ça marchera pas et t'aura pas de cover copiée vers le nouveau dossier...
Tu peux d'abord le tester en prenant juste quelques CD dans un autre dossier "sources" et voir le comportement.
Code:
# Script renommage cover1000.jpg
$shell = New-Object -ComObject Shell.Application
#Chemin des fichiers sources et dossier destination des covers (A modifier suivant les chemins)
$dossierSource = "C:\Mes Disques"
$dossierDestination = "C:\Cover1000"
# Parcourir chaque sous-dossier du dossier source
foreach ($album in Get-ChildItem -Path $dossierSource -Directory) {
# Rechercher les fichiers MP3 dans le dossier de l'album
$mp3Files = Get-ChildItem -Path $album.FullName -Filter *.mp3
# Vérifier s'il y a au moins un fichier MP3 dans l'album
if ($mp3Files.Count -gt 0) {
# Obtenir les tags ID3 du premier fichier MP3
$mp3File = $mp3Files[0].FullName
$folder = $shell.Namespace((Get-Item $mp3File).DirectoryName)
$file = $folder.ParseName((Get-Item $mp3File).Name)
$artistname = $folder.GetDetailsOf($file, 20)
$albumname = $folder.GetDetailsOf($file, 14)
# Vérifier si les tags existent
if ($artistname -and $albumname) {
# Construire le chemin du fichier cover1000.jpg dans le dossier source
$coverSource = Join-Path $album.FullName "cover1000.jpg"
# Construire le chemin du fichier de destination avec les tags artiste et album
$coverDestination = Join-Path $dossierDestination "$($artistname)_$($albumname).jpg"
# Copier le fichier cover1000.jpg vers le dossier de destination avec son nouveau nom
Copy-Item -Path $coverSource -Destination $coverDestination -Force
Write-Host "Copie de $coverSource vers $coverDestination"
}
}
}
pause
Résultat :
Si l'arbo n'est pas comme tu la décris ça marchera pas en l'état, faudrait adapter.
Typiquement si t'as une arbo plutôt du type DossierMusic\Artiste\Album au lieu de DossierMusic\Artiste-Album\
Et bien sur en espérant que les tags soient bons sur tes fichiers mp3 !