Dateinamen mit Powershell umbenennen ???
Hallo,
Ich benötige ein Script mit dem ich eine MP3 Sammlung umbenennen kann. Die Dateien lauten im Ursprung alle so:
012-bakermat_-_one_day_(vandaag)_(radio_edit)
013-alle_farben_feat_graham_-_she_moves_(far_away)
usw.
Am Ende sollen die Dateien wie folgt aussehen:
Bakermat - One Day (Vandaag) (Radio Edit)
Alle Farben (Feat. Graham) - She Moves (Far Away)
Es sollen also alle unterstriche entfernt werden, die Ziffern vorne sollen weg, Der featuring Interpret soll in Klammern sein und jedes Wort soll mit einem Großbuchstaben anfangen.
bislang habe ich folgendes Script erstellt und damit die folgende Lösung bereits hinbekommen.
Script:
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name -replace '_' , ' '}
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name -replace ' and ' , ' & '}
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name -replace 'feat' , '(Feat.'}
Get-ChildItem "D:\MUSIK\*(Feat.*.mp3" | Rename-Item -NewName {$_.Name -replace ' - ' , ') - '}
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name.Substring(4)}
Ergebnis:
bakermat - one day (vandaag) (radio edit)
alle farben (Feat. graham) - she moves (far away)
Mir fehlt also nur noch die der Großbuchstabe am Anfang jedes Wortes. Kann mir da jemand Unterstützung geben und / oder auch evtl das Script verfeinern / anpassen / professioneller machen ??? Bin blutiger Anfänger was powershell anbelangt.
DANK im voraus.
Gruß lexura
Ich benötige ein Script mit dem ich eine MP3 Sammlung umbenennen kann. Die Dateien lauten im Ursprung alle so:
012-bakermat_-_one_day_(vandaag)_(radio_edit)
013-alle_farben_feat_graham_-_she_moves_(far_away)
usw.
Am Ende sollen die Dateien wie folgt aussehen:
Bakermat - One Day (Vandaag) (Radio Edit)
Alle Farben (Feat. Graham) - She Moves (Far Away)
Es sollen also alle unterstriche entfernt werden, die Ziffern vorne sollen weg, Der featuring Interpret soll in Klammern sein und jedes Wort soll mit einem Großbuchstaben anfangen.
bislang habe ich folgendes Script erstellt und damit die folgende Lösung bereits hinbekommen.
Script:
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name -replace '_' , ' '}
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name -replace ' and ' , ' & '}
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name -replace 'feat' , '(Feat.'}
Get-ChildItem "D:\MUSIK\*(Feat.*.mp3" | Rename-Item -NewName {$_.Name -replace ' - ' , ') - '}
Get-ChildItem "D:\MUSIK\*.mp3" | Rename-Item -NewName {$_.Name.Substring(4)}
Ergebnis:
bakermat - one day (vandaag) (radio edit)
alle farben (Feat. graham) - she moves (far away)
Mir fehlt also nur noch die der Großbuchstabe am Anfang jedes Wortes. Kann mir da jemand Unterstützung geben und / oder auch evtl das Script verfeinern / anpassen / professioneller machen ??? Bin blutiger Anfänger was powershell anbelangt.
DANK im voraus.
Gruß lexura
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 241914
Url: https://administrator.de/forum/dateinamen-mit-powershell-umbenennen-241914.html
Ausgedruckt am: 23.04.2025 um 07:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo lexura,
probier das mal:
Grüße Uwe
probier das mal:
$files = dir "D:\Musik\*.mp3"
foreach($file in $files){
# ersetzen von underscores, 'and' und Zahlen am Anfang
$newname = ($file.Basename.replace("_"," ").replace(' and ','&') -replace '^\d*-?','')
# große Anfangsbuchstaben
$newname = [regex]::Replace($newname,'\b([a-z])\w+',{param($m) ($m.Groups[1].Value.toUpper()+$m.Value.Substring(1))})
# wenn 'feat' vorkommt ...
if($newname -match '\bfeat'){
$newname = $newname -Replace '(feat)(.*?) -','($1.$2) -'
}
$newname = $newname + $file.Extension
write-host $file.Name" ==> " -NoNewline -ForegroundColor Red; write-host $newname -ForegroundColor Green
rename-item $file.FullName $newname
}