Ein kurzes PowerShell-Skript, in dem alle Dateinamen aufgelistet sind, die mit "category_name-anyText.anyExtension" übereinstimmen:
$dir="Q:\Test"; $categories="Q:\categories.txt"; $cats=@{}; get-childitem $dir -recurse | %{ $file=$_; if(-not $file.PSIsContainer) { if( $file.BaseName -match "^([a-z0-9]+)[-]+.*$") { if( -not $cats.ContainsKey($matches[1])) { $cats.add($matches[1], [int]1); } else { $val=$cats.Get_Item($matches[1]) + 1; $cats.Set_Item($matches[1], $val); } } } } $cats.GetEnumerator() | %{ echo $_.Key >> $categories; }
Beispiel: Dateien:
David_Eddings-The_Mallorean.epub Jan_Myrdal-Confessions_of_a_disloyal_european.txt George_Orwell-Homage_to_Catalonia.mobi
Würde zu folgenden Kategorien führen:
David_Eddings Jan_Myrdal George_Orwell
Dies ist der reguläre Ausdruck, der mit den Dateinamen übereinstimmt: "^ ([a-z0-9] +) [-] +. * $", Dies müsste an verschiedene Kategorien angepasst werden.