2016-11-29 45 views
2
分隔

新增了PowerShell功能,迄今爲止的體驗非常棒。如何格式化以下cmd管道以將顯示屏幕作爲單行顯示,元素之間用?分隔; (很容易讓複製/粘貼到Outlook,以:)如何將對象列表輸出到單個行中,元素用

PS C:\Users\amrgro-dennem04> get-adgroupmember -Identity "gbl-intel-l3-u" -Recursive|get-aduser -properties Mail|select-object Name 

Name 
---- 
AMRCVW-EDELSI 
AMRMOP-REITES 
amrmop-kruges 

基本上,所要的輸出是這樣的:

AMRCVW-EDELSI;AMRMOP-REITES;amrmop-kruges 

回答

3

嘗試:

既然你不t需要-Properties參數,因爲您沒有使用.Mail屬性,可以簡化爲:

(Get-ADGroupMember "gbl-intel-l3-u" -Recursive| Get-ADUser).Name -join ';' 

既然你只訪問.Name財產並沒有真正的成員類型過濾:

(Get-ADGroupMember "gbl-intel-l3-u" -Recursive).Name -join ';' 

如果您使用PSv5.1或更高版本(在Windows上),你可以管上述命令到Set-Clipboard... | Set-Clipboard)將結果文本複製到剪貼板。
在較低的PS版本中,您可以通過管道連接到外部clip.exe實用程序(... | clip),但請注意,這總是附加一個換行符,您可能會遇到編碼問題。


注:

  • 在PSv3 +,你可以簡單地通過在集合本身使用.<propertyName>提取集合的元素的屬性值。

    • 簡化示例:
      @([pscustomobject] @{ one = '1a' }, [pscustomobject] @{ one = '1b' }).one產量陣列@('1a', '1b')
  • -join ';'然後加入與;所得的屬性值作爲隔板,以形成一個單一的輸出字符串的數組。

+0

你可以附加一個'| out-clipboard',他所要做的就是粘貼到outlook中。我曾想過使用美元和報價,但比解決方案更難以解釋。 – LotPings

+0

@LotPings:謝謝,但'Out-Clipboard'不是標準的cmdlet。在PSv5.1 +(在Windows上),您可以使用「設置剪貼板」,但是 - 答案已更新。 – mklement0

+0

哦,那套剪貼板的想法是完美的。儘管我的服務器沒有PS的新版本。其餘的幫助很好,非常感謝! – Fragtzack

相關問題