2012-04-14 9 views
5

Ci deve essere un modo semplice per farlo. Ho uno script PowerShell che si collega a un database e voglio salvare il datatable risultante come CSV. Ecco il codice finora:Usa PowerShell per salvare un datatable come csv

$connString = "Provider=msdaora;Data Source=MyDatabase;User Id=test;Password=test  
$qry = "select * from employees" 
$OLEDBConn = New-Object System.Data.OleDb.OleDbConnection($connString)    
$OLEDBConn.open()    
$readcmd = New-Object system.Data.OleDb.OleDbCommand 
$readcmd.Connection = $OLEDBConn 
$readcmd.CommandTimeout = '300' 
$readcmd.CommandText = $qry 
$da = New-Object system.Data.OleDb.OleDbDataAdapter($readcmd)    
$dt = New-Object system.Data.datatable    
[void]$da.fill($dt)    
$OLEDBConn.close() 
+0

C'è un [ConvertTo-CSV] (http://technet.microsoft.com/en-us/library /dd315253.aspx) cmdlet. Devi solo assicurarti di canalizzare qualcosa che possa capire. –

risposta

15

questo dovrebbe farlo penso:

$ds = New-Object System.Data.DataSet 
$da.Fill($ds) >$null| Out-Null 
$ds.Tables[0] | export-csv tofile.csv -notypeinformation 
+0

Grazie mille! Ha funzionato come un fascino. Non conosco quasi nulla di Powershell, ma avevo bisogno di ottenere questo semplice flusso di dati in esecuzione. –

Problemi correlati