2012-06-18 15 views
5

ho il seguente script PowerShell che esegue la scansione di una posizione e aggiunge i dettagli del file in un file XML,prendere oggetto PowerShell Salva come XML e carico in C#

Get-ChildItem -recurse c:\DATA | Select-Object * , @{Name="Kbytes";Expression={ "{0:N0}" -f ($_.Length/1Kb) }},@{Name="Age";Expression={ (((Get-Date) - $_.CreationTime).Days) }} | Export-Clixml c:\DATA\Final.xml 

Per quanto ho capito questo dovrebbe essere un oggetto nel framework .net, assumendo un set di dati? quello che mi piacerebbe fare è caricare questo oggetto in un'applicazione C# e usarlo come set di dati.

Come caricare l'oggetto in un set di dati in C#?

+0

Utilizzando Export -CliX ML stai seriealizzando i dati. quindi, quando lo deserializzi, non sarà un oggetto vivo. Tutti i metodi disponibili sull'oggetto andranno persi. – ravikanth

risposta

5
  1. Aggiungere riferimento all'assieme System.Management.Automation.dll.
  2. Creare un PowerShell Runspace
  3. Aprire il Runspace
  4. Creare un Pipeline oggetto PowerShell con il comando Import-CliXml
  5. invocare il Pipeline
  6. Chiudere il Runspace

    var rs = RunspaceFactory.CreateRunspace(); 
        rs.Open(); 
        var pl = rs.CreatePipeline(@"Import-CliXml c:\DATA\Final.xml;"); 
        var result = pl.Invoke(); 
        rs.Close();