1. 程式人生 > >C# 呼叫PowerShell方法

C# 呼叫PowerShell方法

原帖地址:http://www.cnblogs.com/BoyceYang/archive/2013/06/13/3133454.html

PowerShell應為編寫和執行都很方便,所以為了重複利用,經常寫了一些小方法或者PS程式碼片段。使用的時候可能會很難找到自己想要的那個方法,如果要是有一個介面把這些程式碼管理起來並且呼叫,那就很爽了

1.建立一個powershell的方法,供C#呼叫,方法很簡單,兩個數的加法運算

function Sum

{

param([int]$first, [int]$second)

$result = $first + $second

return $result

}

 2. 在C#的控制檯程式中建立一個私有方法,呼叫powershell

首先定義一個powershell存放路徑的全域性變數

private static string script =File.ReadAllText(@"Path\Sum.ps1");

        private static void CallPS1()

        {

            using (Runspace runspace = RunspaceFactory.CreateRunspace())

            {

                runspace.Open();

                PowerShell ps = PowerShell.Create();

                ps.Runspace = runspace;

                ps.AddScript(script);

                ps.Invoke();

                ps.AddCommand("Sum").AddParameters(

                    new Dictionary<string, int>()

                    {

                        {"first", 5},

                        {"second", 4}

                    }

                    );

                foreach (PSObject result in ps.Invoke())

                {

                    Console.WriteLine("CallPS1()");

                    Console.WriteLine(result);

                }

            }

        }

呼叫方法需要新增一個引用System.Management.Automation.dll
如果找不到可以到這個路徑下找到:C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll

本文連結