2012-08-03 127 views
0

我具有低於此代碼,我想在類似的方式表格式的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 

只見格式表,但我似乎無法得到它的竅門。

使用上面的代碼的一些例子將非常感激。 非常感謝。

回答

-1

很難甚至開始幫助,因爲目前的代碼根本無法工作...($ spListItem是...什麼?foreach使用$ item,我們可以假設您正在使用它嗎?)。另外:我們很少沒有關於類型的這個項目的信息,它看起來像一些字典對象......無論如何,我會嘗試:

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

明顯,它可能無法工作,因爲我做了一些假設:可以只是錯了..;)

+0

嗨BartekB,感謝的話。我只是改變了代碼。這可能會更清晰。 – 2012-08-03 11:10:56

-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