Top-Themen

Aktuelle Themen (A bis Z)

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 XML-Inhalt zur Ordner- und Dateiumbenennung nutzen

Mitglied: tardezyx

tardezyx (Level 1) - Jetzt verbinden

18.06.2014, aktualisiert 20.06.2014, 1109 Aufrufe, 3 Kommentare

Hallo,

in zahlreichen Unterordnern befindet sich jeweils genau eine XML-Datei derselben Grammatik, von denen ich <title> und <year> gerne zum Umbenennen des Unterordners und aller dort vorhandenen Dateien nutzen möchte (Dateiendungen sind immer unique - es ist also kein Problem, sie gleich zu benennen). Derzeit mache ich das mühsam manuell.

Beispiel Ordnerstruktur:

01.
Suchverzeichnis 
02.
- Subdir 1 
03.
--- Subfile 1.* (Datendatei, Dateityp unbekannt/unwichtig) 
04.
--- Subfile 1.nfo (die XML) 
05.
- Subdir 2 
06.
--- Subfile 2.* (Datendatei, Dateityp unbekannt/unwichtig) 
07.
--- Subfile 2.nfo (die XML) 
08.
- usw. usf.
Subfile 1.nfo enthält nun folgende Informationen:

01.
<?xml version="1.0" encoding="utf-8"?> 
02.
<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
03.
  <id>tt1276962</id> 
04.
  <title>Projekt ASDF</title> 
05.
... 
06.
  <year>2005</year> 
07.
... 
08.
</entry>
Es soll daraufhin "Subdir 1" wie folgt umbenannt werden:

01.
Suchverzeichnis 
02.
- Projekt ASDF (2005) 
03.
--- Projekt ASDF (2005).* (Datendatei, Dateityp unbekannt/unwichtig) 
04.
--- Projekt ASDF (2005).nfo (die XML) 
05.
- Subdir 2 
06.
--- Subfile 2.* (Datendatei, Dateityp unbekannt/unwichtig) 
07.
--- Subfile 2.nfo (die XML) 
08.
- usw. usf.
Es sollen also <title> und <year> zu einem String verknüpft und dabei <year> umklammert werden. Hinzu kommt aber eine Besonderheit durch die Ordner- & Dateinamensbeschränkung des Betriebssystems, bei der bestimmte Zeichen nicht erlaubt sind. Diese Zeichen kommen freilich nur im <title> vor und müssten im String wie folgt ersetzt werden:

- "<" mit "("
- ">" mit ")"
- "/" mit "-"
- "|" mit "-"
- "\" mit "-"
- ":" mit " -" (inkl. Leerzeichen vor dem "-")
- "*" mit "" (also weg)
- "?" mit "" (also weg)

Ferner können (bei einer späteren Nachpflege) in den Unterordnern die folgenden drei Dateien mit bestimmten Endungen vorkommen, dies wären:

Projekt ASDF (2005)-poster.*
Projekt ASDF (2005)-fanart.*
Projekt ASDF (2005)-trailer.*

Diese Endungen (-poster, -fanart, -trailer) müssten bei der Umbenennung erhalten bleiben.

Danke und Gruß!
Mitglied: colinardo
LÖSUNG 19.06.2014, aktualisiert 20.06.2014
Moin tardezyx,
wenn Powershell nichts ausmacht, könnte das so aussehen:
01.
# Suchverzeichnis 
02.
$rootFolder = "D:\Projekte" 
03.
$nfofiles = dir "$rootFolder\*.nfo" -Recurse | ?{!$_.PSIscontainer} 
04.
foreach($nfo in $nfofiles){ 
05.
    # Infos aus XML-Datei holen 
06.
    $xml = New-Object XML 
07.
    $xml.Load($nfo.FullName) 
08.
    $title = $xml.SelectSingleNode("/entry/title").InnerText 
09.
    $year = $xml.SelectSingleNode("/entry/year").InnerText 
10.
     
11.
    # Replacements 
12.
    $title = $title.Replace("<","(").Replace(">",")").Replace(":"," -").Replace("*","").Replace("?","") 
13.
    $title = ([Regex]'[/|\\]').Replace($title,"-") 
14.
     
15.
    # Dateien umbenennen 
16.
    $files = dir "$($nfo.Directory)\*.*" 
17.
    foreach($file in $files){ 
18.
        if(($file.BaseName -match '-poster$|-fanart$|-trailer$')){ 
19.
            $split = $file.BaseName.Split("-") 
20.
            $specialEnd = $split[$($split.Length -1)] 
21.
            $newname = "$title ($year)-$specialEnd$($file.Extension)" 
22.
        }else{ 
23.
            $newname = "$title ($year)$($file.Extension)" 
24.
25.
        rename-item $file.FullName -NewName $newname 
26.
27.
 
28.
    # Ordner umbenennen 
29.
    rename-item $nfo.Directory "$title ($year)" 
30.
}
Grüße Uwe
Bitte warten ..
Mitglied: Endoro
19.06.2014 um 13:59 Uhr
Hey,
das ist mit reinem Batch auch zu machen.
Es ist aber reichlich aufwendig, das zu damit schreiben und zu testen.
Nimm die Lösung von @colinardo.
Gruss, Endoro
Bitte warten ..
Mitglied: tardezyx
20.06.2014 um 20:22 Uhr
Hi Uwe,

danke - funktioniert hervorragend.

Gruß!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
XML-Inhalt austauschen
gelöst Frage von noscriptBatch & Shell10 Kommentare

Hallo zusammen Nachdem ich nun das komplette Internet gefühlt zwei Mal gelesen, aber nicht kapiert habe, versuch ichs nun ...

Batch & Shell
Inhalt von XML-Dateien ändern
gelöst Frage von Kedi123Batch & Shell14 Kommentare

Hallo zusammen, wir haben täglich viele XML-Dateien, die unter anderem jeweils eine Festplattengröße in Byte enthalten (Zeile 16). Um ...

Batch & Shell
XML-Inhalt austauschen V2
gelöst Frage von noscriptBatch & Shell2 Kommentare

hi mit folgendem Script bearbeite ich xml's welche in einem ordner abgelegt sind. nun möchte ich das script so ...

VB for Applications

Inhalt einer XML Datei Script ändern

gelöst Frage von chris27584VB for Applications4 Kommentare

Hallo zusammen, in folgendem Script <?xml version="1.0"?> -<SkClientConfig xmlns:xsi=" xmlns:xsd=" <LastServerIndex>1</LastServerIndex> <LastUser>11111</LastUser> <LastWorkplace>2358</LastWorkplace> -<SerializableFont> <FontValue>Microsoft Sans Serif; 8,25pt</FontValue> </SerializableFont> ...

Neue Wissensbeiträge
CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 2 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 22 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung25 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...