【问题标题】:Remove white space from PowerShell output从 PowerShell 输出中删除空格
【发布时间】:2013-11-13 03:09:27
【问题描述】:

我在 PowerShell 中使用以下命令返回 Active Directory 中通讯组的邮件属性。

Get-ADGroup $GroupName -Properties Mail | Select-Object Mail | Format-Wide

输出看起来像(用于表示空白的星号):

*
*
mygroup@mycompany.com
*
*

有什么办法可以去掉输出开头和结尾处的空格?

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    我认为这应该可行(V2):

    (Get-ADGroup $GroupName -Properties Mail | Select-Object Mail | Format-Wide | out-string).split("`n") -match '\S'
    

    编辑:这比它需要的复杂得多。

    (Get-ADGroup $GroupName -Properties Mail | Select-Object Mail | Format-Wide | Out-String).trim()
    

    【讨论】:

    • 输出没有变化:-(
    【解决方案2】:

    这就是 PowerShell 格式化输出的方式。我曾多次抱怨输出前后多余的空白行。如果你想避免这种情况,那么你自己格式化输出。你可以这样做:

    $res = @(Get-ADGroup $GroupName -Properties Mail | Select-Object Mail)
    for ($i = 0; $i -lt $res.Length - 1 + 4; $i += 4) { 
        "{0,-28} {1,-28} {2,-28} {3,-28}" -f $res[$i].Mail,$res[$i+1].Mail,$res[$i+2].Mail,$res[$i+3].Mail
    }
    

    这假设您当前的控制台是 120 个字符宽。如果是80,把上面的-28改成-18。

    顺便说一句,这里的关键点是 PowerShell 处理对象,当它将这些对象呈现到屏幕上时,它有一个格式化引擎,可以确定输出前后的空白行等内容。如果您不喜欢 PowerShell 的默认格式,您可以随意格式化对象(显示您想要的任何属性),但这需要更多的工作。

    说了这么多,如果命令只返回一个对象,为什么不这样做:

    (Get-ADGroup $GroupName -Properties Mail).Mail
    

    Select-Object Mail、Format-Wide 和 Out-String 不是必需的。哎呀,使用 PowerShell V3,即使命令返回多个对象,这也可以工作。

    【讨论】:

    • 我尝试了您的解决方案并收到以下错误:无法索引到 System.Management.Automation.PSObject 类型的对象。
    • 你只得到一个结果?好的,用更新的答案再试一次。
    • 如果Get-ADGroup $GroupName -Properties Mail | Select-Object Mail 什么都不返回,就会发生这种情况。输入$res[0]。如果什么都不输出,那么您的 Get-ADGroup 命令什么也不返回。您仍然正确定义了 $GroupName 吗?
    • 没关系,我在针对 Get-Process 进行测试时使用了属性名称。将属性更改为 Mail,因此它现在应该可以工作了。
    • 从开头删除两个空行,正确显示电子邮件,但只从末尾删除两个空行之一。
    【解决方案3】:

    检查答案中的示例组合在类似情况下对我有用:

     ... Format-Table | Out-String).split("`n").trim()
    

    重新阅读原始问题后,我似乎有一个不同的问题要解决。我正在寻找一种从输出行的 end 修剪空白的方法。检查的答案让我尝试了上面的代码,它做了我想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 2015-11-22
      • 2017-11-03
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      相关资源
      最近更新 更多