C#调⽤PowerShell⽅法
PowerShell应为编写和运⾏都很⽅便,所以为了重复利⽤,经常写了⼀些⼩⽅法或者PS代码⽚段。使⽤的时候可能会很难到⾃⼰想要的那个⽅法,如果要是有⼀个界⾯把这些代码管理起来并且调⽤,那就很爽了 1.创建⼀个powershell的⽅法,供C#调⽤,⽅法很简单,两个数的加法运算
1function Sum
2 {
3param([int]$first, [int]$second)
4$result = $first + $second
5return$result
6 }
2. 在C#的控制台程序中创建⼀个私有⽅法,调⽤powershell
何新
⾸先定义⼀个powershell存放路径的全局变量 1private static string script =File.ReadAllText(@"Path\Sum.ps1");
2private static void CallPS1()
3 {
4using (Runspace runspace = RunspaceFactory.CreateRunspace())
5 {
6 runspace.Open();
2000导航7诗人的别称
中国统计年鉴2013
8 PowerShell ps = PowerShell.Create();
9 ps.Runspace = runspace;
10 ps.AddScript(script);
11 ps.Invoke();
12
13 ps.AddCommand("Sum").AddParameters(
14
15new Dictionary<string, int>()
16 {
17 {"first", 5},
18 {"second", 4}
19 }
20 );
21
22foreach (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
>交换空间2011