Je dois exécuter un script PowerShell à partir de C#. Le script a besoin d'arguments de ligne de commande.
Voici ce que j'ai fait jusqu'à présent :
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 contient quelque chose comme " C:\Program Fichiers \MyProgram\Whatever.ps1 ".
Le script utilise un argument de ligne de commande tel que "-key Value" alors que Value peut être quelque chose comme un chemin qui peut aussi contenir des espaces.
Je n'arrive pas à le faire fonctionner. Quelqu'un sait-il comment passer des arguments de ligne de commande à un script PowerShell depuis C# et s'assurer que les espaces ne posent pas de problème ?
1 votes
Juste pour clarifier pour les futurs utilisateurs, la réponse acceptée résout le problème pour les personnes ayant des problèmes avec les espaces même sans les paramètres d'utilisation. Utilisation :
Command myCommand = new Command(scriptfile);
et ensuitepipeline.Commands.Add(myCommand);
résoudre le problème de l'échappement.