转换C#中的Powershell返回值

时间:2014-06-06 13:31:30

标签: c# powershell

我想从PSObject过滤属性并将其转换为字符串值以供进一步使用。 在我的情况下,返回值是一个复杂的点,并且不允许.ToString()转换。

我有一个解决方案,但这只适用于这种情况,如果输入值发生变化,我可能会遇到很多错误。

那么有更通用的方法来获取这些值吗?

using (PowerShell ps = PowerShell.Create())
{
    ps.AddCommand("get-help").AddArgument("C:\\Users\\kritzinger\\Work\\test.ps1");
    Collection<PSObject> PSOutput = ps.Invoke();
    foreach (PSObject outputItem  in PSOutput)
    {
        dynamic description = outputItem.Properties["description"].Value;

        // not working
        string foo = description.ToString();
        // foo = "System.Management.Automation.PSObject[]"

        foreach (dynamic item in description)
        {
            // not working
            string bar = item.ToString();
            // bar = ""

            // working!
            string moo = item.Text;
            // moo = "here is the description of the poweshell script"
        }
    }
}

1 个答案:

答案 0 :(得分:0)

使用此

string foo = Convert.ToString(description).ToString(); 

它会起作用!