Вызов сценария PowerShell с аргументами из C#

У меня есть сценарий PowerShell, хранящийся в файле. В Windows PowerShell я выполняю скрипт как
.\MergeDocuments.ps1 "1.docx" "2.docx" "merge.docx"

Я хочу вызвать скрипт из C #. В настоящее время я использую Process.Start следующим образом, который отлично работает.:
Process.Start(POWERSHELL_PATH, string.Format("-File \"{0}\" {1} {2}", SCRIPT_PATH, string.Join(" ", filesToMerge), outputFilename));

Я хочу запустить его, используя класс Pipeline, что-то вроде приведенного ниже кода, но я не знаю, как передать аргументы (у меня нет именованных аргументов, я просто использую $args)

// create Powershell runspace
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();

RunspaceInvoke runSpaceInvoker = new RunspaceInvoke(runspace);
runSpaceInvoker.Invoke("Set-ExecutionPolicy Unrestricted");

// create a pipeline and feed it the script text (AddScript method) or use the filePath (Add method)
Pipeline pipeline = runspace.CreatePipeline();
Command command = new Command(SCRIPT_PATH);
command.Parameters.Add("", ""); // I don't have named paremeters
pipeline.Commands.Add(command);

pipeline.Invoke();
runspace.Close();
6
задан sh_kamalh 21 April 2012 в 15:59
поделиться