【发布时间】:2010-10-06 08:45:24
【问题描述】:
我需要在 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);然后pipeline.Commands.Add(myCommand);解决转义问题。
标签: c# command-line powershell scripting arguments