2016-11-27 84 views
1

我试图输出Skype响应组队列的不同属性以用于文档目的。在for循环中显示来自多个变量的输出

我想NameTimeoutThresholdTimeoutActionTimeouturiOverflowThresholdOverflowActionOverflowCandidate在第1行一个.csv文件头,然后输出到各列从行中输入2.

我曾尝试下面,但格式非常糟糕,标题不断重复。有人可以帮忙吗?

也尝试在HTML中获取输出,但没有运气。

$p = Get-CsRgsQueue | Where-Object {$_.Name -like "IPL*"} | Select-Object Name 

foreach ($Name in $p) 
{ 
    $q = Get-CsRgsQueue -Name "$Name" 
    $N = $q.Name 
    $TT = $q.TimeoutThreshold 
    $TA = $q.TimeoutAction.Action 
    $TAU = $q.TimeoutAction.uri 
    $OF = $q.OverflowThreshold 
    $OFA = $q.OverflowAction 
    $OFC = $q.OverflowCandidate 

    $out = New-Object PSObject 
    $out | Add-Member NoteProperty QueueName $N 
    $out | Add-Member NoteProperty Timeout $TT 
    $out | Add-Member NoteProperty TimeoutAction $TA 
    $out | Add-Member NoteProperty TransferURI $TAU 
    $out | Add-Member NoteProperty OverflowThreshhold $OF 
    $out | Add-Member NoteProperty OverflowAction $OFA 
    $out | Add-Member NoteProperty OverflowCandidate $OFC 

    $out | FT -AutoSize | Export-Csv C:\abc.csv -Append 
} 
+0

你有省略'| FT -AutoSize'在最后一行。 –

+0

要整理它,你可以为你的属性使用一个散列表,它被称为splatting。希望格式化看起来不错。 EDITED *** Grr,抱歉下面的格式。 –

+0

foreach($ name in $ P) $ properties = @ {$ q = get-csrgsqueue -name“$ Name” $ N = $ q.Name $ TT = $ q.TimeoutThreshold $ TA = $ q。 TimeoutAction.Action $ TAU = OF = $ q.OverflowThreshold $ OFA = $ q.OverflowAction $ OFC = $ q.OverflowCandidate $ q.TimeoutAction.uri $} 新物体-TypeName psobject -Property $属性 –

回答

1

下面我都试过了,但格式是真的不好, 不断重复的头。有人可以帮忙吗?

那是因为你通过FT -AutoSizeFormat-Table -AutoSize)管你的对象 - 永远只能使用Format-*的cmdlet当你要告诉/你的数据。

您还可以通过只调用Get-CsRgsQueue一次,管道传输到ForEach-Object并最终构建对象属性哈希表节省时间:马蒂亚斯·耶森的

Get-CsRgsQueue | Where-Object {$_.Name -like "IPL*"} | ForEach-Object { 
    New-object psobject -Property @{ 
     QueueName   = $_.Name 
     Timeout   = $_.TimoutThreshold 
     TimeoutAction  = $_.TimeoutAction.Action 
     TransferURI  = $_.TimeoutAction.Uri 
     OverflowThreshhold = $_.OverflowThreshold 
     OverflowAction  = $_.OverflowAction 
     OverflowCandidate = $_.OverflowCandicate 
    } 
} |Export-Csv c:\abc.csv -NoTypeInformation 
-2

简短的解决方案

Get-CsRgsQueue | where Name -like "IPL*" | %{ 
    [pscustomobject] @{ 
    QueueName   = $_.Name 
    Timeout   = $_.TimoutThreshold 
    TimeoutAction  = $_.TimeoutAction.Action 
    TransferURI  = $_.TimeoutAction.Uri 
    OverflowThreshhold = $_.OverflowThreshold 
    OverflowAction  = $_.OverflowAction 
    OverflowCandidate = $_.OverflowCandicate 
    } 
} | Export-Csv C:\result.csv -NoType