Necesito ejecutar un script de PowerShell desde C #. El script necesita argumentos de línea de comandos.
Esto es lo que he hecho hasta ahora:
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 contiene algo como "C: \ Archivos de programa \ MyProgram \ Whatever.ps1".
El script usa un argumento de línea de comando como "-key Value" mientras que Value puede ser algo así como una ruta que también puede contener espacios.
No consigo que esto funcione. ¿Alguien sabe cómo pasar argumentos de línea de comando a un script de PowerShell desde C # y asegurarse de que los espacios no sean un problema?
Command myCommand = new Command(scriptfile);
y luegopipeline.Commands.Add(myCommand);
resuelva el problema de escape.