我编写了一个小的PowerShell脚本,它从文本文件中读取sql server实例的名称,然后循环它们并将查询结果输出到文本文件中。
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