SQL でストアド プロシージャを実行する PowerShell スクリプトがあります。これは、大きな単一の XML 結果を返します。この XML 結果をファイルに保存する必要があります。
残念ながら、PowerShell が見栄えを良くしようとすると、出力が損なわれます。
$xmldataset.tables[0] | ft -wrap -hidetableheaders | out-file C:\xml_result.xml
これで完全な結果が得られますが、画面に表示されているかのように結果がラップされます。これにより、ほとんどの XML パーサーが壊れます。
$xmldataset.tables[0] | ft -hidetableheaders | out-file C:\xml_result.xml
これにより、結果が任意に 2 行に分割され、各行が切り捨てられます。
-wrap を使用しない限り、SQL から返されるのは 1 行だけですが、結果が 2 行に表示されます。
ここに完全なコードがあります
$SqlCmd.CommandText = "exec dbo.sp_getXML"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SqlServer; Database = $SqlCatalog; Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$xmlDataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($xmlDataSet)
SQL からの出力をファイルに保存し、できれば SQL の結果によって作成された改行も保存するにはどうすればよいですか。