在链接PowerShell命令时,如何引用第一个命令的输出

时间:2014-05-30 16:13:53

标签: powershell activesync

如何从输出中的命令链的第一部分中提取一个值?例如:

Get-ActiveSyncDevice | Get-ActiveSyncDeviceStatistics | ft UserDeviceAgent,Identity -a

作为一个虚构的示例,假设UserDeviceAgent列在Get-ActiveSyncDevice中可见,但是我无法将其显示在最终输出中

enter image description here

请注意:

我的问题具体是:我如何"支持参考"命令链中的输出?

2 个答案:

答案 0 :(得分:3)

您需要将其传递给管道,因此在您的脚本中,您必须将管道的第二部分转换为ForEach,然后输出所需的属性和第二个命令的结果。

所以,假设让我们这样说:

Get-ActiveSyncDevice | %{
    $CurDev = Get-ActiveSyncDeviceStatistics
    add-member -InputObject $CurDev -MemberType NoteProperty -Name UserDeviceAgent -Value $_.UserDeviceAgent
    $CurDev
}| ft    UserDeviceAgent, Identity -a

答案 1 :(得分:0)

你可以在第一个CmdLet上尝试-OutVariable,然后在最后的Format-Table中运行一个表达式:

Get-ActiveSyncDevice -OutVariable ASD | `
Get-ActiveSyncDeviceStatistics | `
Format-Table Identity, @{Name="UserDeviceAgent"; Expression ={$ASD.Item($ASD.Count-1).UserDeviceAgent}}