学习powershell,尝试找出如何解析此结果集中的第一个值(10.60.50.40
):
IPAddresses
-----------
{10.60.50.40, fe80::5ddf:a8f4:e29c:b66}
通常我会查一查,但是,我不知道{x,x}是否是Powershell
土地中的标准数据类型。
我是否必须进行粗略的字符串解析,或者是否有一些标准命令来提取第一个,例如:
... | Select-Object IPAddresses | Select-String [0]
(我刚刚把选择字符串组成部分。我迷路了。)
答案 0 :(得分:5)
这很可能是包含数组的对象的1
属性的结果。您看到的输出已经过风格化以用于显示目的,因此它不是您需要解析的字符串。假设您的对象为IPAddresses
,您应该可以执行以下任一操作:
$obj
答案 1 :(得分:0)
一种解决方案是使用split函数将字符串转换为数组,并在下一步中使用它:
以下示例:
$str = "{10.60.50.40, fe80::5ddf:a8f4:e29c:b66}"
$strArr = $str.Split(",")
Write-Host $strArr[0].Replace("{", "")
答案 2 :(得分:0)
这就是我最终做的事情:
$str = ... | Select-Object IPAddresses | ForEach {$_.IpAddresses}
Write-Host $str[0]
答案 3 :(得分:0)
根据IP地址的来源,这可能不是最佳选择。您可能会为每个设备获得多个IP地址。
您可能希望将两种方法结合起来:
$str = ... | Select-Object -ExpandProperty IPAddresses | Select-Object -First 1
这将返回每个设备列表中的第一个IP地址。