Ich habe ein PowerShell-Skript in einer Datei gespeichert. In Windows Powershell ausführen ich das Skript als
.\MergeDocuments.ps1 "1.docx" "2.docx" "merge.docx"
Aufrufen von PowerShell-Skript mit Argumenten aus C#
ich das Drehbuch von C# aufrufen möchten. Derzeit ich Process.Start bin mit wie folgt die einwandfrei funktioniert:
Process.Start(POWERSHELL_PATH, string.Format("-File \"{0}\" {1} {2}", SCRIPT_PATH, string.Join(" ", filesToMerge), outputFilename));
ich es mit Pipeline
Klasse ausgeführt werden soll, so etwas wie den Code unten, aber ich weiß nicht, wie die Argumente zu übergeben (bedenken Sie, dass ich habe keine benannten Argumente, ich bin $ args nur mit)
// 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();
eine endgültige Lösung mit vollständigem Source? – Kiquenet
@Kiquenet Der Code wurde hinzugefügt. –