2011-04-13 38 views
1

我試圖創建一個電子郵件報告來顯示失敗/成功的備份作業列表。Powershell:在html報告頂部顯示一次表格標題

這裏是我的腳本:

$servers = @(gc config\dbs.txt) 
foreach($server in $servers) 
{ 
    $dt = new-object "System.Data.DataTable" 
    $cn = new-object System.Data.SqlClient.SqlConnection "server=$server;database=msdb;Integrated Security=sspi" 
    $cn.Open() 
    $sql = $cn.CreateCommand() 
    $sql.CommandText = $(get-content config\query.sql) 
    $rdr = $sql.ExecuteReader() 
    $dt.Load($rdr) 
    $cn.Close() 
    $dt |ft Server,RunStatus,JobName >> $log 
    $dt | ConvertTo-Html Server,JobName,RunStatus -head $a | ac logs\backups\report.htm  
} 

Server  JobName  RunStatus 
srv1  job1  success 
srv1  job2  success 
Server  JobName  RunStatus 
srv2  job1  fail 
srv2  job2  success 
srv2  job3  success 
Server  JobName  RunStatus 
srv3  job1  fail 
srv3  job2  success 
srv3  job3  success 
Server  JobName  RunStatus 
srv4  job1  fail 
srv4  job2  success 
srv4  job3  success 
Server  JobName  RunStatus 
srv5  job1  fail 

我多次獲得頭名作爲內容的HTML文件被每一個的foreach枚舉後加入。我可以更改我的腳本,使標題[Server JobName RunStatus]只在頂部顯示一次嗎?

另外我想知道是否有可能在郵件中顯示report.htm作爲內聯內容而不是附件。這可能嗎?

在此先感謝。
steeluser

回答

5

因爲您在每個枚舉中使用了ConvertTo-HTML,所以會爲每個枚舉顯示錶頭。 format-table也適用。試試這個:

 
$dts = @() 

@(gc config\dbs.txt) | % { 
    $dt = new-object "System.Data.DataTable" 
    $cn = new-object System.Data.SqlClient.SqlConnection "server=$server;database=msdb;Integrated Security=sspi" 
    $cn.Open() 
    $sql = $cn.CreateCommand() 
    $sql.CommandText = $(get-content config\query.sql) 
    $rdr = $sql.ExecuteReader() 
    $dt.Load($rdr) 
    $cn.Close() 
    $dts += $dt 
} 

$dts |ft Server,RunStatus,JobName >> $log 
$dts | ConvertTo-Html Server,JobName,RunStatus -head $a | ac logs\backups\report.htm  
+1

對於第二個問題... [看這裏](http://poshcode.org/950)!歡呼聲 – 2011-04-13 04:52:24

+0

感謝empo! 這工作..我早些時候試過$ dts + = $ dt的東西,但它失敗了,因爲我仍然在循環本身做ConvertToHtml ..所以我只得到$ dt的最後結果集,它沒有發生在我身上我做錯了什麼..我想長時間的工作會這樣做給你..乾杯:-) – Animesh 2011-04-13 06:16:09

+0

回答我的第二個問題看起來對我來說太複雜了..猜我需要休息一段時間才能通過它..感謝給我一個出發點.. :-)有一個美好的一天。 – Animesh 2011-04-13 06:18:07