代码之家  ›  专栏  ›  技术社区  ›  g.pickardou

使用C中的PowerShell主机#如何获取输出?

  •  0
  • g.pickardou  · 技术社区  · 4 年前

    具有以下NET 5控制台应用程序:

    static void Main(string[] args)
    {
        using var ps = PowerShell.Create();
        // ps.AddCommand("Get-Service");
        ps.AddStatement().AddCommand("Get-Service");
        ps.Invoke();
    }
    

    调用似乎没有错误地执行,但是输出到哪里去了? 我两个都试过了 AddCommand AddStatement ,并检查了 ps 调试器中的变量,没有输出的迹象。我确实发现了 ps.Streams.Information 但它是空的。

    1 回复  |  直到 4 年前
        1
  •  1
  •   Aluan Haddad Vikrant Kashyap    4 年前

    PowerShell.Invoke 方法,则返回包含PowerShell操作生成的任何结果的集合。

    这样,你就可以写作了

    static void Main(string[] args)
    {
        using var ps = PowerShell.Create();
        ps.AddStatement().AddCommand("Get-Service");
        var results = ps.Invoke();
    
        foreach (var result in results)
        {
            Console.WriteLine(result);
        }
    }