gpt4 book ai didi

c# - 在 C# 中执行 Powershell Cmdlets 代码

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:50 29 4
gpt4 key购买 nike

我如何使用用于在另一个 c# 方法而不是 powershell 脚本中创建 powershell cmdlet 的代码。

我有以下代码:

public class Program
{
static void Main(string[] args)
{
var getCommand = new GetCommand { Text = "Hello World"};

//help needed here
}
}

[Cmdlet("Test", "Get")]
public class GetCommand : Cmdlet
{
[Parameter(Mandatory = true)]
public string Text { get; set; }

protected override void ProcessRecord()
{
WriteObject(Text);
}
}

最佳答案

不要实例化 GetCommand 类 - PowerShell 会为您完成!

首先,您需要启动 PowerShell 类的一个实例来执行您的命令:

PowerShell ps = PowerShell.Create();

然后使用 AddCommand 方法添加一个 CommandInfo 引用:

ps.AddCommand(new CmdletInfo("Test-Get", typeof(GetCommand)));

然后添加你的参数参数:

ps.AddParameter("Text", "Hello World");

现在您可以使用 Invoke() 方法执行它(并收集输出):

var output = ps.Invoke();
foreach(var obj in ouput)
{
Console.WriteLine("Output was: {0}", obj);
}

关于c# - 在 C# 中执行 Powershell Cmdlets 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589492/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com