Ich versuche, ein PowerShell-Skript zu schreiben, um eine Liste von Dateien aus mehreren Verzeichnissen zu erstellen. Nachdem alle Verzeichnisse zur Hauptliste hinzugefügt wurden, möchte ich die gleiche Verarbeitung für alle Dateien durchführen.
Das habe ich:
$items = New-Object Collections.Generic.List[IO.FileInfo]
$loc1 = @(Get-ChildItem -Path "\\server\C$\Program Files (x86)\Data1\" -Recurse)
$loc2 = @(Get-ChildItem -Path "\\server\C$\Web\DataStorage\" -Recurse)
$items.Add($loc1) # This line fails (the next also fails)
$items.Add($loc2)
# Processing code is here
die mit diesem Fehler fehlschlägt:
Das Argument "0" kann nicht konvertiert werden, mit Wert: "System.Object[]", für "Hinzufügen" in Typ "System.IO.FileInfo": "Kann nicht Konvertierung des Wertes "System.Object[]" vom Typ "System.Object[]" in den Typ "System.IO.FileInfo"."
Mich interessiert vor allem, was die richtige Vorgehensweise für diese Art von Situation ist. Mir ist klar, dass mein Code ein sehr C Wenn es eine bessere PowerShell-Methode gibt, um dieselbe Aufgabe zu erfüllen, bin ich dafür. Der Schlüssel ist, dass die Anzahl der $loc#'s
können sich im Laufe der Zeit ändern, so dass das Hinzufügen und Entfernen von einem oder zwei im resultierenden Code einfach sein sollte.