2013-02-14 2 views
0

나는 텍스트 파일에서 SQL 서버 인스턴스의 이름을 읽어 들이고이를 반복하고 쿼리 결과를 텍스트 파일에 출력하는 작은 powershell 스크립트를 작성했습니다.Powershell & 출력 파일의 좋은 형식

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

를 업데이트 한 내가있어 오류 : 'op_Addition'라는 메서드가 포함되어 있지 않습니다 [System.Data.DataRow] 때문에 메소드 호출에 실패했습니다. –

+0

업데이트 된 답변보기 –

+0

코드 스 니펫에서 일부 변경 작업을 수행했습니다. 현재 시도해 볼 수 있습니까? – RinoTom