MMTTMM
有没有机会我可以更清楚地了解Commands.AddScript方法的传递参数?C:\ Foo1.PS1 Hello World Hunger C:\ Foo2.PS1 Hello WorldscriptFile =“C:\ Foo1.PS1”parameters =“parm1 parm2 parm3”...可变长度的参数解决了这个问题......将null作为名称,将param作为值传递给CommandParameters集合这是我的功能:private static void RunPowershellScript(string scriptFile, string scriptParameters){
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
Command scriptCommand = new Command(scriptFile);
Collection commandParameters = new Collection();
foreach (string scriptParameter in scriptParameters.Split(' '))
{
CommandParameter commandParm = new CommandParameter(null, scriptParameter);
commandParameters.Add(commandParm);
scriptCommand.Parameters.Add(commandParm);
}
pipeline.Commands.Add(scriptCommand);
Collection psObjects;
psObjects = pipeline.Invoke();}