【问题标题】:Powershell Splitting in the pipeline [duplicate]管道中的Powershell拆分[重复]
【发布时间】:2016-09-30 22:42:01
【问题描述】:

我试图在动词/连字符之后拆分名称属性列表并让它工作,但我必须先保存到文件中。

我让它像这样工作 - 获取 Name 属性并将它们添加到文件中 -

Get-Command -Module Posh-SSH | Format-Table Name | out-file posh_ssh

然后在'-'处拆分列表

Get-Content .\posh_ssh | % {$_.split("-")[1]}

但是有没有办法像这样在一行上做到这一点?我不明白为什么这不起作用。

Get-Command -Module Posh-SSH | Format-Table Name |  % {$_.split("-")[1]}

谢谢!

【问题讨论】:

  • 谢谢马特,我没有意识到格式表是它的关键。真的需要找个地方问新手问题,比如 passthru 和 tee 之间的区别

标签: powershell


【解决方案1】:

Format 是一个格式化程序 cmdlet,它不应该在管道的最后一部分以外的任何地方使用,因为它不会将“真实”对象传递给管道。 你可以做的是使用 select-object 来获取你想要的东西,就像这样(用我自己计算机上的模块替换模块名称):

Get-Command -Module microsoft.powershell.management | select-object -expand Name | % {$_.split("-")[1]}

也就是说,对于这个特定的问题,请注意 get-command 输出的对象本身就是丰富的对象,并且包含一个“名词”属性,这是我假设您最终追求的: Get-Command -Module microsoft.powershell.management | select-object -ExpandProperty verb

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 2012-11-19
    • 2011-10-04
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多