修剪PS对象,因为它们是字符串

时间:2016-11-02 14:46:57

标签: powershell

我有一个数组$final,其中数组中的每个元素都是一个自定义对象。每个对象都是'computername @ ipaddress'形式的计算机名(例如:AJFFF01@10.10.10.10)。我需要的是没有'@IPADRESS'的计算机名称列表。我尝试在每个项目上使用.toString(),但它什么都不返回。请帮忙!

以下是$final的Get-member的输出(为$final[0] | gm提供了相同的方法):

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 #text=AJFFF09@10.10.10.10

提前谢谢大家。

2 个答案:

答案 0 :(得分:0)

所以看起来你有一个XmlElements数组而不是一个自定义对象数组。此外,似乎有一个#text属性可用,其中包含您要查找的字符串。您可以通过调用INNER JOIN来访问它(确保记住属性名称周围的引号)。然后你必须解析字符串以删除额外的数据,但你可以使用正则表达式匹配或.substring()方法。

答案 1 :(得分:0)

获取所需数据的简单方法是使用split

请参阅以下内容以便更好地理解:

$Array='AJFFF01@10.10.10.10'
$CompName=$array.split('@')[0]
$CompName

希望它能够发挥作用。