【发布时间】:2016-07-01 00:25:05
【问题描述】:
我知道以前有人问过这个问题,但我很难将其他人的解决方案应用于我的情况。请为您的答案提供概念和技术(代码)解释,因为我需要了解它是如何工作的,所以我不必再次询问不同的场景。 :)
问题:如何让这个导出我的PSObject 中的所有行,为什么它目前只导出最后一行? (请记住我只在 PS 2.0 上)
$d = Get-SPDatabase | Sort-Object DiskSizeRequired -desc
$d | %{
#Report
$t = New-Object PSObject
$t | Add-Member NoteProperty "Size (MB)"([string]("{0:N0}" -f ($_.DiskSizeRequired / 1MB)) + " MB")
$t | Add-Member NoteProperty "Database"($_.Name)
Write-Output $t
}
#Save Report to Tab Delimited File on the Desktop
$t | Export-Csv ("{0}\Desktop\SP DB Sizes ({1}).txt" -f $Env:UserProfile, (Get-Date -Format "yyyy-MM-dd")) -Delimiter `t -Encoding UTF8 -NoTypeInformation
以上是特定于 SharePoint 的脚本,但我希望相同的概念适用于任何涉及 PSObject 以输出表格数据的情况。是的,我想同时将输出写入控制台和文件。
【问题讨论】:
-
您确实意识到您
write-output $t为每个项目,但永远不要管它或保存它,所以唯一剩下的就是最后一个? -
嗯,我明白你的意思,但我不知道如何解决它,这就是我在这里的原因。我已经尝试了很多东西,但到目前为止没有任何效果。
标签: powershell powershell-2.0 export-to-excel psobject