Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Umbenennen von html-Dateien anhand ihres title-tags in Unterordnern, ps3, Win7

$
0
0

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.


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>