Preciso executar um script PowerShell de dentro do C #. O script precisa de argumentos de linha de comando.
Isso é o que eu fiz até agora:
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 contém algo como "C: \ Arquivos de programas \ MyProgram \ Whatever.ps1".
O script usa um argumento de linha de comando como "-key Value", enquanto Value pode ser algo como um caminho que também pode conter espaços.
Eu não consigo fazer isso funcionar. Alguém sabe como passar argumentos de linha de comando para um script do PowerShell de dentro do C # e certificar-se de que os espaços não são problema?
Command myCommand = new Command(scriptfile);
e, em seguida,pipeline.Commands.Add(myCommand);
resolva o problema de escape.