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 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?
答
如果你想群集地址,你应该得到的只是在Address
集群参数:
$i = Get-ClusterResource "Cluster IP Address" `
| Get-ClusterParameter Address `
| select Value
上面的命令将返回一个对象与持有的IP地址的属性Value
。如果你只想实际的IP地址,用这个来代替:
$i = (Get-ClusterResource "Cluster IP Address" `
| Get-ClusterParameter Address).Value
答
Select-string返回MatchInfo对象。要获得匹配的行为仅仅是价值,您需要选择了“线”属性只值:
$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]
答
Select-String不用于操作对象,它设计用于对文本(文件)进行操作。专为过滤对象在PowerShell中的工具就是对象cmdlet:
$i = Get-ClusterResource "Cluster IP Address" |
get-clusterparameter |
Where-Object { $_.Value -like '10.*' } |
Foreach-Object { $_.Value }
另一件事是,你想要的价值,而不是与单个属性自定义对象(这就是select -property value
将创建)的事实。因此 - 您可以使用-expand
参数Select-Object
或使用Foreach-Object
cmdlet代替。
答
与office365在线命令,在这里我想追上刚值到一个变量有同样的问题,我这样做:
$displayname = get-mailbox $whataccount | select displayname
而且,就像你,我收到这样的:
"@{DisplayName=Bob Newhart}
这是我做过什么让刚刚我想要的值:
$displayname = get-mailbox $whataccount | select displayname
$displayname = $displayname.displayname
现在变量只包含这个:Bob Newhart
但是,这是基本相同什么安斯加尔Wiechers说,在他的回答。
感谢您的帮助! – user2211801 2013-03-26 15:09:47