【问题标题】:How can I reference the output of the first command when chaining PowerShell commands链接 PowerShell 命令时如何引用第一个命令的输出
【发布时间】:2014-07-20 11:20:42
【问题描述】:

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

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

作为一个虚构的例子,假设列 UserDeviceAgent 在Get-ActiveSyncDevice 中可见,但是我无法让它出现在最终输出中

请注意:

我的问题具体是:如何在命令链中“反向引用”输出?

【问题讨论】:

    标签: powershell activesync


    【解决方案1】:

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

    所以假设你的假设是这样的:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2021-09-11
        • 1970-01-01
        • 1970-01-01
        • 2022-08-14
        • 1970-01-01
        • 2019-05-12
        • 1970-01-01
        • 2013-11-08
        • 1970-01-01
        相关资源
        最近更新 更多