2012-06-18 26 views
5

tôi có các kịch bản PowerShell sau đó quét một địa điểm và cho biết thêm các chi tiết tập tin vào một tập tin xml,mất đối tượng PowerShell tiết kiệm như xml và tải trong 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 

Theo như tôi hiểu được điều này phải là một đối tượng trong khung .net, giả định tập dữ liệu? những gì tôi muốn làm là tải đối tượng này vào một ứng dụng C# và sử dụng nó như một tập dữ liệu.

Làm cách nào để tải đối tượng vào tập dữ liệu trong C#?

+0

Bằng việc sử dụng xuất khẩu -CliX ML bạn đang kiểm tra dữ liệu. Vì vậy, khi bạn deserialize này, nó sẽ không phải là một đối tượng sống. Tất cả các phương thức có sẵn trên đối tượng sẽ bị mất. – ravikanth

Trả lời

5
  1. Thêm tham chiếu đến cụm System.Management.Automation.dll.
  2. Tạo PowerShell Runspace
  3. Mở Runspace
  4. Tạo PowerShell Pipeline đối tượng với lệnh Import-CliXml
  5. Gọi Pipeline
  6. Đóng Runspace

    var rs = RunspaceFactory.CreateRunspace(); 
        rs.Open(); 
        var pl = rs.CreatePipeline(@"Import-CliXml c:\DATA\Final.xml;"); 
        var result = pl.Invoke(); 
        rs.Close(); 
    
Các vấn đề liên quan