Powershell 在for循环中显示多个变量的输出
我正在尝试输出Skype响应组队列的不同属性,以用于文档编制 我想将Powershell 在for循环中显示多个变量的输出,powershell,formatting,export-to-csv,Powershell,Formatting,Export To Csv,我正在尝试输出Skype响应组队列的不同属性,以用于文档编制 我想将名称,超时阈值,超时动作,超时URI,溢出阈值,溢出动作,溢出候选作为第1行的.csv文件头,然后在第2行的各个列中输入输出 我在下面尝试过,但是格式非常糟糕,标题不断重复。能找个人帮忙吗 还尝试以HTML格式获取输出,但没有成功 $p = Get-CsRgsQueue | Where-Object {$_.Name -like "IPL*"} | Select-Object Name foreach ($Name in $p
名称
,超时阈值
,超时动作
,超时URI
,溢出阈值
,溢出动作
,溢出候选
作为第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
}
我在下面试过了,但是格式很糟糕,标题也很糟糕
不断重复。能找个人帮忙吗
这是因为您通过管道将对象传输到FT-AutoSize
(Format Table-AutoSize
)-仅在您即将显示/呈现数据时使用Format-*
cmdlet
您还可以通过只调用一次Get-csrgsquee
来节省一些时间,将其传送到ForEach对象
,并最终为对象属性构造一个哈希表:
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
Mathias-Jessen的短解
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
您必须在最后一行中省略“|FT-AutoSize”。要整理它,您可以对属性使用哈希表,这称为splatting。希望格式看起来没问题。已编辑***Grr,很抱歉在下面设置格式。foreach($P中的名称)$properties=@{$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}新对象-TypeName psobject-属性$Properties如果格式化工作正常,每个属性应该位于新行。