Die index.html sind in Unterverzeichnissen (Tiefe 1) von "c:\data\" jeweils einmal zu finden. Sie haben dieses Namens-Muster: 20180827194705341.
Der title-tag hat folgendes Muster: z. B. <title>Liste von Sehenswürdigkeiten in Berlin – Wikipedia</title>
Ich möchte nun jede index.html rekursiv mit dem title-tag umbenennen bzw. diesen voranstellen, z. B. aus index.html möge Liste von Sehenswürdigkeiten in Berlin – Wikipedia_index.html werden.
Mein Lösungsansatz sieht so aus:
$data = Get-ChildItem -Path c:\data\ -Recurse -Include index.html | select-string -PATTERN "(?<=<title>)([\S\s]*?)(?=</title>)" $data | get-member #check the methods and properties available using Get-Member $data.Matches #siehe unten $data.Filename #siehe unten $data | rename-Item -WhatIf $data.Filename -NewName $data.Matches
Leider bricht der rename-Vorgang mit einer Fehlermeldung ab:
Rename-Item : "System.Object[]" kann nicht in den Typ "System.String" konvertiert
werden, der für den Parameter "NewName" erforderlich ist. Die angegebene Methode wird
nicht unterstützt.
Vielen Dank.
Output von der Powershell:
TypeName: Microsoft.PowerShell.Commands.MatchInfo
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
RelativePath Method string RelativePath(string directory)
ToString Method string ToString(), string ToString(string directory)
Context Property Microsoft.PowerShell.Commands.MatchInfoContext Context {get;set;}
Filename Property string Filename {get;}
IgnoreCase Property bool IgnoreCase {get;set;}
Line Property string Line {get;set;}
LineNumber Property int LineNumber {get;set;}
Matches Property System.Text.RegularExpressions.Match[] Matches {get;set;}
Path Property string Path {get;set;}
Pattern Property string Pattern {get;set;}
---------------------------------------------------------------
Groups : {Liste von Sehenswürdigkeiten in Berlin – Wikipedia, Liste von
Sehenswürdigkeiten in Berlin – Wikipedia}
Success : True
Captures : {Liste von Sehenswürdigkeiten in Berlin – Wikipedia}
Index : 7
Length : 50
Value : Liste von Sehenswürdigkeiten in Berlin – Wikipedia
--------------------------------------------------------------
Groups : {Bodeneffekt – Wikipedia, Bodeneffekt – Wikipedia}
Success : True
Captures : {Bodeneffekt – Wikipedia}
Index : 7
Length : 23
Value : Bodeneffekt – Wikipedia
-------------------------------------------------------------
index.html
index.html
---------------------------------------------------------------
Rename-Item : "System.Object[]" kann nicht in den Typ "System.String" konvertiert
werden, der für den Parameter "NewName" erforderlich ist. Die angegebene Methode wird
nicht unterstützt.