gpt4 book ai didi

c# - 使用命令行参数从 C# 执行 PowerShell 脚本

转载 作者:IT王子 更新时间:2023-10-29 03:37:08 25 4
gpt4 key购买 nike

我需要从 C# 中执行 PowerShell 脚本。该脚本需要命令行参数。

这是我到目前为止所做的:

RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();

Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();

RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);

Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(scriptFile);

// Execute PowerShell script
results = pipeline.Invoke();

scriptFile 包含类似于“C:\Program Files\MyProgram\Whatever.ps1”的内容。

该脚本使用命令行参数,例如“-key Value”,而 Value 可以是类似于也可能包含空格的路径。

我没有让它工作。有谁知道如何从 C# 中将命令行参数传递给 PowerShell 脚本并确保空格没有问题?

最佳答案

尝试将脚本文件创建为单独的命令:

Command myCommand = new Command(scriptfile);

然后你可以添加参数

CommandParameter testParam = new CommandParameter("key","value");
myCommand.Parameters.Add(testParam);

最后

pipeline.Commands.Add(myCommand);

这是经过编辑的完整代码:

RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();

Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();

Pipeline pipeline = runspace.CreatePipeline();

//Here's how you add a new script with arguments
Command myCommand = new Command(scriptfile);
CommandParameter testParam = new CommandParameter("key","value");
myCommand.Parameters.Add(testParam);

pipeline.Commands.Add(myCommand);

// Execute PowerShell script
results = pipeline.Invoke();

关于c# - 使用命令行参数从 C# 执行 PowerShell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/527513/

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