2012-06-18 80 views
5

我有以下PowerShell脚本,其扫描位置并把文件的详细信息到一个XML文件,采取PowerShell的对象保存在C#中的XML和负载

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 

据我了解,这应该是一个对象在.net框架中,假设一个数据集? 我想要做的是加载这个对象到一个C#应用程序,并将其用作数据集。

如何将对象加载到c#中的数据集?

+0

通过导出-CliX ML你正在对数据进行seriealizing。所以,当你反序列化这个,它不会是一个活的对象。对象上的所有可用方法都将丢失。 – ravikanth

回答

5
  1. 添加对System.Management.Automation.dll组件的引用。
  2. 创建一个PowerShell Runspace
  3. 打开Runspace
  4. 创建具有Import-CliXml命令的PowerShell Pipeline对象
  5. 调用Pipeline
  6. 关闭Runspace

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