Powershell entrolling macht mich verrückt.
Ich habe den folgenden Code, um E-Mail-Adressen von einem Austauschempfänger abzurufen. Ich benutze die ArrayList, weil sie von vielen Leuten vorgeschlagen wird, wenn Sie Objekte aus dem Array entfernen wollen.
%Vor%Der Wert von $ aliases ist am Ende der Funktion korrekt (d. h. enthält x E-Mail-Adressen und ist vom Typ ArrayList), aber nach der Rückgabe wird er zu System.Object [] und hat 2x Einträge. Es folgen x Int32's gefolgt von x Strings (d. H. {0, 1, bob @ here, bob @ there}). Warum passiert das und wie kann ich meine ArrayList intakt halten? Täusche ich mich für die Verwendung von ArrayList?
Aus Neugier, mit all den Fragen / Problemen, die sich aus dem Abrollen von PS ergeben, was ist der Zweck? Der große Vorteil von Powershell ist, dass Sie direkt mit Objekten arbeiten, anstatt mit ihren Textprojektionen. Leider weiß ich nie, mit welchem Objekt ich arbeite - und selbst wenn ich es überprüfe, scheint es nicht mehr in Form zu bleiben als ein paar Zeilen Code.
- Bearbeiten Die Funktion wird als Teil eines PSObject
aufgerufen %Vor% Ein Teil des Problems besteht darin, wie das Array innerhalb der Funktion verwendet wird. Denken Sie daran, dass eine Funktion in PowerShell nichts zurückgibt . Es schreibt Objekte in die Pipeline. Daher ist die Rückgabe überflüssig, verursacht aber keine Probleme. Die Verwendung der Add
-Funktion verursacht das Problem, weil Add
returns
Beachten Sie, wie groß die Zahl 8 ist. Was zu tun ist, ist das Unterdrücken des Schreibens dessen, was von der Funktion Add
zurückgegeben wird. Es gibt ein paar Möglichkeiten, dies zu tun, aber hier ist eines:
Ich glaube nicht, dass die Verwendung von 'ArrayList' falsch ist, wenn Sie Elemente daraus entfernen möchten.
Was entrolling betrifft, so verdient das eine ganz andere Frage und wurde bereits angesprochen .
>.
Tags und Links powershell