2016-11-02 2 views
0

Ich habe ein Array, $final, wobei jedes Element im Array ein benutzerdefiniertes Objekt ist. Jedes Objekt ist ein Computername in der Form 'Computername @ IP-Adresse' (zB: [email protected]). Was ich brauche ist eine Liste der Computernamen ohne '@IPADRESS'. Ich habe versucht, .toString() für jedes Element, aber es gibt nichts zurück. Bitte helfen Sie!Trimmen von PS-Objekten, obwohl sie Strings sind

Unten ist die Ausgabe von Get-Mitglied $final (die die gleichen Methoden für $final[0] | gm bietet):

PS C:\windows\system32> $final | gm 


    TypeName: Selected.System.Xml.XmlElement 

Name  MemberType Definition         
----  ---------- ----------         
Equals  Method  bool Equals(System.Object obj)    
GetHashCode Method  int GetHashCode()       
GetType  Method  type GetType()        
ToString Method  string ToString()       
#text  NoteProperty System.String #[email protected] 

Vielen Dank im Voraus.

Antwort

0

Es sieht also so aus, als ob Sie ein Array von XmlElements anstelle eines Arrays von benutzerdefinierten Objekten haben. Außerdem scheint eine #text-Eigenschaft verfügbar zu sein, die die Zeichenfolge enthält, nach der Sie suchen. Sie können darauf zugreifen, indem Sie $final[0].'#text' anrufen (achten Sie darauf, die Anführungszeichen um den Namen der Eigenschaft zu erinnern). Dann müssten Sie die Zeichenfolge analysieren, um die zusätzlichen Daten zu entfernen, aber Sie können entweder regex-Übereinstimmungen oder .substring() -Methoden verwenden.

0

Eine einfache Möglichkeit, die erforderlichen Daten zu erhalten, ist split

an die unten für ein besseres Verständnis finden Sie zu verwenden:

$Array='[email protected]' 
$CompName=$array.split('@')[0] 
$CompName 

Hope it helps.

Verwandte Themen