Powershell选择特定的值
嗨,对不起,我不是一个写脚本的人,我想我的问题很简单,但我找不到答案 我这样做:Powershell选择特定的值,powershell,Powershell,嗨,对不起,我不是一个写脚本的人,我想我的问题很简单,但我找不到答案 我这样做: $i = Get-ClusterResource "Cluster IP Address" | get-clusterparameter | Select -Property value 然后得到: Value ----- Cluster Network 2 10.32.32.36 255.255.252.0 2 0 0 255.255.252.0 1/1/0001 12:00:00 AM 1/1/0001 1
$i = Get-ClusterResource "Cluster IP Address" | get-clusterparameter | Select -Property value
然后得到:
Value
-----
Cluster Network 2
10.32.32.36
255.255.252.0
2
0
0
255.255.252.0
1/1/0001 12:00:00 AM
1/1/0001 12:00:00 AM
255.255.255.255
0.0.0.0
255.0.0.0
但我需要的唯一信息是ip“10.32.32.36”,因此我尝试:
$i = Get-ClusterResource "Cluster IP Address" | get-clusterparameter | Select -Property value | Select-String -SimpleMatch "10."
但是我得到了$I=@{Value=10.32.32.36}
我不知道为什么它会添加
@{value=xxxx}
如何删除它并且只拥有IP?选择字符串返回MatchInfo对象。要仅获取匹配行的值,需要仅选择“line”属性的值:
$i = Get-ClusterResource "Cluster IP Address" |
get-clusterparameter |
Select -Property value |
Select-String -SimpleMatch "10." |
Select -ExpandProperty Line
如果ip始终是您可以使用的第二个值:
$i = (Get-ClusterResource "Cluster IP Address" | get-clusterparameter |
Select -expand value )[1]
选择字符串不是设计用于操作对象,而是设计用于操作文本(文件)。PowerShell中为筛选对象而设计的工具是Object cmdlet:
$i = Get-ClusterResource "Cluster IP Address" |
get-clusterparameter |
Where-Object { $_.Value -like '10.*' } |
Foreach-Object { $_.Value }
另一件事是,您需要的是值,而不是具有单个属性的自定义对象(这是
select-property-value
将创建的)。因此-您可以在选择对象
上使用-expand
参数,也可以使用Foreach对象
cmdlet 如果需要群集地址,则只需获取地址
群集参数:
$i = Get-ClusterResource "Cluster IP Address" `
| Get-ClusterParameter Address `
| select Value
上述命令将返回一个具有属性值的对象,该属性包含IP地址。如果只需要实际的IP地址,请使用以下选项:
$i = (Get-ClusterResource "Cluster IP Address" `
| Get-ClusterParameter Address).Value
office365 online命令也有同样的问题,我只想将值捕获到变量中,我这样做了:
$displayname = get-mailbox $whataccount | select displayname
和你一样,我也收到了这个:
"@{DisplayName=Bob Newhart}
这就是我为获得我想要的价值所做的:
$displayname = get-mailbox $whataccount | select displayname
$displayname = $displayname.displayname
现在该变量只包含以下内容:Bob Newhart
但这与Ansgar Wiechers在回答中所说的基本相同