PowerShell應為編寫和運行都很方便,所以為了重復利用,經常寫了一些小方法或者PS代碼片段。使用的時候可能會很難找到自己想要的那個方法,如果要是有一個界面把這些代碼管理起來並且調用,那就很爽了
1.創建一個powershell的方法,供C#調用,方法很簡單,兩個數的加法運算
1 function Sum 2 { 3 param([int]$first, [int]$second) 4 $result = $first + $second 5 return $result 6 }
2. 在C#的控制台程序中創建一個私有方法,調用powershell
首先定義一個powershell存放路徑的全局變量
1 private static string script =File.ReadAllText(@"Path\Sum.ps1"); 2 private static void CallPS1() 3 { 4 using (Runspace runspace = RunspaceFactory.CreateRunspace()) 5 { 6 runspace.Open(); 7 8 PowerShell ps = PowerShell.Create(); 9 ps.Runspace = runspace; 10 ps.AddScript(script); 11 ps.Invoke(); 12 13 ps.AddCommand("Sum").AddParameters( 14 15 new Dictionary<string, int>() 16 { 17 {"first", 5}, 18 {"second", 4} 19 } 20 ); 21 22 foreach (PSObject result in ps.Invoke()) 23 { 24 Console.WriteLine("CallPS1()"); 25 Console.WriteLine(result); 26 } 27 28 } 29 30 }
調用方法需要添加一個引用System.Management.Automation.dll
如果找不到可以到這個路徑下找到:C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll