我有一個PowerShell腳本,它執行SQL中的存儲過程,它將返回一個大的單一XML結果。我需要將這個XML結果保存到一個文件中。PowerShell,格式化來自SQL的大型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
這只是隨意地將我的結果分成兩行,即截斷每一行。
除非我使用-wrap,否則它會將結果放入兩行,即使它只是從SQL返回的一行。
下面是完整的代碼
$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保存到一個文件,preferrably保存在SQL結果創建以及換行符。
不幸的是,這仍然增加了linebreaks。如果在控制檯中顯示結果(它根據窗口大小而變化),它似乎會將它們添加到通常添加它們的地方。 – coreno 2013-02-25 15:16:40
這就是格式表所做的。如果您只想將輸出保存到文件中,請直接將其輸出到設置內容,而不需要間隔。 – mjolinor 2013-02-25 15:22:16
我正在做格式表,因爲否則它包括頭部並將數據結果分成兩行。 – coreno 2013-02-25 15:52:38