0

我在下面有这段代码,我想在表格中显示输出,如时尚

$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,但我似乎无法掌握它。

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

4

2 回答 2

-1

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

$items | ForEach-Object {
    # assume $items is array of dictionary objects...
    New-Object PSObject -Property $_
} | Format-Table ID, Name, Department, Telephone

显然,它可能行不通,因为我做了一些可能是错误的假设.. ;)

于 2012-08-03T09:10:25.407 回答
-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
于 2012-08-03T11:59:41.867 回答