将powershell输出格式化为表格格式

时间:2012-08-03 08:57:11

标签: sharepoint powershell

我在下面有这个代码,我想在时尚

这样的表格中显示输出
$spSite = Get-SPSite "http://sp2010" 
$spWeb = $spSite.OpenWeb()

$spList = $spWeb.Lists["ReportList"]
$items = $spList.Items
foreach($item in $items)
{
    Write-Host  $item["ID"] $item["Name"] $item["Department"] $item["Telephone"]

}
像这样:

ID      Name            Department        Telephone
---    --------         -----------       ------------

1       Somone          IT                 02554445588

我看过Format-Table,但我似乎无法理解它。

非常感谢使用上述代码的一些示例。 非常感谢。

2 个答案:

答案 0 :(得分:-1)

很难开始帮助,因为当前的代码根本不起作用...($ spListItem是......什么?foreach使用$ item,我们可以假设你正在使用它吗?)。另外:我们几乎没有关于这个项目的类型的信息,它看起来像一些字典对象......无论如何,我会尝试:

$items | ForEach-Object {
    # assume $items is array of dictionary objects...
    New-Object PSObject -Property $_
} | Format-Table ID, Name, Department, Telephone
显然,它可能不起作用,因为我做了一些可能是错误的假设..;)

答案 1 :(得分:-1)

尝试一下:

function Get-SPListItem
{
    param(
        [Parameter(Mandatory=$true,ValueFromPipeline=$true)] 
        [Microsoft.SharePoint.SPList]$List,

        [Parameter()] 
        [ValidateNotNullOrEmpty()]
        [string]$ViewName
    )

    process 
    {
        try
        {
            if($PSCmdlet.MyInvocation.BoundParameters.ContainsKey('ViewName'))
            { 
                $views = $list.Views | Select-Object -ExpandProperty Title   

                if($views -contains $ViewName)        
                {
                    $columns = $List.Views[$ViewName].ViewFields
                }
                else
                {
                    throw 'Invalid view name'
                }
            }
            else 
            {
                $columns = $List.DefaultView.ViewFields
            }

            foreach($item in $List.Items) 
            {
                $obj = New-Object PSObject

                foreach($col in $columns) 
                {
                    $obj | Add-Member -MemberType NoteProperty -Name $col -Value $item[$col]
                }

                $obj
            }

        } 
        catch
        {
            Write-Error $_
        }    
    }
}


$spWeb.Lists["ReportList"] | Get-SPListItem