Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateinamen mit Powershell umbenennen ???

Frage Entwicklung Batch & Shell

Mitglied: lexura

lexura (Level 1) - Jetzt verbinden

26.06.2014 um 11:54 Uhr, 5851 Aufrufe, 2 Kommentare, 1 Danke

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
Mitglied: colinardo
LÖSUNG 26.06.2014, aktualisiert um 18:19 Uhr
Hallo lexura,
probier das mal:
01.
$files = dir "D:\Musik\*.mp3" 
02.
foreach($file in $files){ 
03.
    # ersetzen von underscores, 'and' und Zahlen am Anfang 
04.
    $newname = ($file.Basename.replace("_"," ").replace(' and ','&') -replace '^\d*-?','') 
05.
    # große Anfangsbuchstaben 
06.
    $newname = [regex]::Replace($newname,'\b([a-z])\w+',{param($m) ($m.Groups[1].Value.toUpper()+$m.Value.Substring(1))}) 
07.
    # wenn 'feat' vorkommt ... 
08.
    if($newname -match '\bfeat'){ 
09.
        $newname = $newname -Replace '(feat)(.*?) -','($1.$2) -' 
10.
11.
    $newname = $newname + $file.Extension 
12.
    write-host $file.Name" ==> " -NoNewline -ForegroundColor Red; write-host $newname -ForegroundColor Green 
13.
    rename-item $file.FullName $newname 
14.
}
Grüße Uwe
Bitte warten ..
Mitglied: lexura
26.06.2014 um 13:10 Uhr
Hallo Uwe,
besten Dank. Dein Script ist perfekt !!! Genau so muss ich das Ergebnis haben.

Gruß lexura

P.S. hammer, wie schnell man hier zu einer SUPER Lösung kommt.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Verwendung von PSSession erzeugt Fehlermeldung (2)

Frage von Dani zum Thema Batch & Shell ...

Windows Tools
Reg Auswertung mit Powershell (1)

Frage von Bommi1961 zum Thema Windows Tools ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (35)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...

RedHat, CentOS, Fedora
Fedora, RedHat, Centos: DNS-Search Domain setzen (13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...