2013-02-14 1 views
0

Я написал небольшой скрипт powershell, который считывает имена экземпляров sql-сервера из текстового файла, затем свертывает их и выводит результаты запроса в текстовый файл.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

Я обновил свой ответ –

ответ

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». –

+0

Посмотрите на Обновленный ответ –

+0

Я только что сделал некоторые изменения в фрагменте кода. Можете ли вы попробовать текущий – RinoTom