Wie initialisieren Sie ein array von benutzerdefinierten Objekten

Erste, dies führt zu meiner Frage, werde ich beginnen mit der Feststellung, dass ich schon mit XML gearbeitet ein gutes Stück in PowerShell, und wie lese ich Daten aus XML-Dateien, schnell, in arrays von benutzerdefinierten Objekten. Zum Beispiel, wenn ich das folgende XML-Datei:

<stuff>
 <item name="Joe" age="32">
  <info>something about him</info>
 </item>
 <item name="Sue" age="29">
  <info>something about her</info>
 </item>
 <item name="Cat" age="12">
  <info>something else</info>
 </item>
</stuff>

Und wenn ich lese es einfach, wie diese:

[xml]$myxml = Get-Content .\my.xml

Dann kann ich mich zu einer Reihe von meine Artikel wie dieser:

[array]$myitems = $myxml.stuff.Item
$myitems

name   age  info
----   ---  ----
Joe    32   something about him
Sue    29   something about her
Cat    12   something else

So, nun meine Frage:

Wie kann ich erstellen Sie eine ähnliche Struktur ein array mit benutzerdefinierten Objekten, und initialisieren Sie in meinem Skript, ohne einer Datei zu Lesen?

Ich kann viel looping und/oder Menge der Erzeugung/Initialisierung der einzelnen Objekte, und fügen Sie in ein array ein zu einer Zeit...

Aber es scheint, es sollte eine Möglichkeit zum ausführen dieser Erstellung/Initialisierung in einem einfacheren Weg. Beachten Sie, dass der Schlüssel hier ist, dass meine benutzerdefinierte Objekte haben mehr als zwei Elementen (sonst würd ich verwendet habe, hash).

Habe ich auch sah die Schaffung eines großen XML-Zeichenfolge, und mithilfe von Select-XML, aber ich konnte einfach nicht bekommen die syntax richtig (wenn das überhaupt die richtige Straße hinunter).

  • Also ich denke, was Sie Fragen ist, wie können Sie ein array von Objekten, die Sie on the fly erstellt, und zeigt Sie in ordentlichen Tabellen, wie Sie es mit der xml oben?
  • Es ist schade, dass sich zu den Anforderungen gehören nicht Lesen aus einer Datei. Import-Csv ergibt ein array von pscustom Objekte.
InformationsquelleAutor SteveDJ | 2013-06-27
Schreibe einen Kommentar