2013-02-14 154 views
0

我寫了一個小的powershell腳本,從文本文件中讀取sql server實例的名稱,然後循環它們並將查詢結果輸出到文本文件。Powershell&nice格式化輸出文件

foreach ($Instance in Get-Content C:\temp\SQLServers.txt) 
{ 
$Instance; 
$File ="c:\temp\SqlLoopLog.txt" 
Add-Content $File "`r`n$Instance" 
Invoke-Sqlcmd -ServerInstance $Instance -Database msdb -Query "select * from dbo.[sysjobs]" | Out-File $File 
} 

但是,當調用Invoke-Sqlcmd時,每次都會重新設置文件SqlLoopLog.txt的內容。但是,如果我添加-append,則信息將輸出到一行而不是幾行,並且它是不可讀的。如何輸出可讀格式的數據?

+0

我已經更新了我的答案 – 2013-02-14 17:23:12

回答

0

可以嘗試:

$output=(Invoke-Sqlcmd -ServerInstance $Instance -Database msdb -Query "select * from dbo.[sysjobs]").tostring() 
$output+="`n" 
$output | out-file -append $file 
+0

我有錯誤:方法調用失敗,因爲[的System.Data.DataRow]不包含名爲「op_Addition」的方法。 – 2013-02-14 16:27:08

+0

看看更新回答 – 2013-02-14 17:17:12

+0

我只是在代碼片段中做了一些更改。你可以嘗試當前的嗎? – RinoTom 2013-02-14 18:49:36