2014-02-05 65 views
0

結束,我有以下的PowerShell腳本,遍歷所有列表項和工作流程,試圖找到舊運行的工作流出口循環後CSV使用PowerShell

的邏輯是確定的,但我需要能夠出口到到csv列 ListeItemUrl,ListItemName,打開的天數。

$web = get-spweb https://mysite.com/sites/billing 
$list = $web.Lists["Bill Cycles"] 
$count = 0 
foreach($wf in $list.WorkflowAssociations) 
{ 
    if ($wf.Name -like "*Previous Version*") 
    { 
     Write-Host 'Bill Cycles with old workflow: ' $wf.Name 
     foreach($listitem in $list.Items) 
     { 

     if($listitem.ContentType.Name -eq "Bill Cycle") 
     { 
      $workflows = $listitem.Workflows 
      foreach($Workflow in $listitem.Workflows) 
      { 
       if($Workflow.AssociationId -eq $wf.Id) 
       { 
        $count = $count+1 
        Write-Host $listitem.Name 
        Write-Host 'https://mysite.com/sites/billing/'$listitem.Url.TrimStart(); 
        Write-Host 'Workflow opened for: ' ((Get-Date) - $Workflow.Created).Days 
       } 
      } 
     } 
     } 
    } 
} 
Write-host 'Count: ' $count 

然後用導出的文件,我可以很容易地按天排序併發送我需要的報告。

回答

1

格式化爲CSV輸出 - ListeItemUrl,ListItemName,NrofDaysOpened - 和管道它Export-Csv cmdlet的(你可以找到通過運行get-help Export-Csv更多)。你將不得不改變寫主機寫輸出

+0

,將創建每個循環一個文件,我需要一個文件只 –

+0

有可以克服一些方法。確保將你的export-csv cmdlet放置在正確的位置,將你的輸出變爲一個變量,然後在你的腳本結尾把這個變量傳給'export-csv'或者運行整個腳本(假設它被稱爲_script.ps1_)爲如下: '。\ script.ps1 | expor-csv C:\ somepath \ file.csv' – Raf