Necesito ejecutar un script de PowerShell desde C#. La secuencia de comandos necesita argumentos de línea de comandos.Ejecutar el script de PowerShell desde C# con los argumentos de la línea de comando
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();
el archivo de guión contiene algo así como "C: \ Archivos de programa \ MiPrograma \ Whatever.ps1".
La secuencia de comandos utiliza un argumento de línea de comandos como "-key Value", mientras que Value puede ser algo así como una ruta que también podría contener espacios.
No consigo que esto funcione. ¿Alguien sabe cómo pasar argumentos de línea de comandos a un script de PowerShell desde C# y asegurarse de que los espacios no sean un problema?
todavía me parece que tienen el problema de que si el valor es algo así como c: \ archivos de programa \ miprograma, la clave se establece en C: \ Program. :( – Mephisztoe
No importa. A veces ayuda cuando sabes cómo dividir cadenas correctamente ;-) Gracias de nuevo, ¡tu solución me ayudó a resolver mi problema! – Mephisztoe
@Tronex - debe definir la clave como un parámetro para su secuencia de comandos. PowerShell tiene algunas excelentes herramientas integradas para trabajar con rutas. Quizás haga otra pregunta sobre eso. @ Kosi2801 tiene la respuesta correcta para agregar parámetros. –