C# 调用PowerShell方法
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
分类:
PowerShell
标签:
PowerShell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述