Je dois exécuter un script PowerShell à partir de C#. Le script a besoin d'arguments de ligne de commande.Exécuter le script PowerShell à partir de C# avec les arguments de la ligne de commande
C'est ce que je l'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 Files \ 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 ne comprends pas cela. Est-ce que quelqu'un sait comment passer des arguments de ligne de commande à un script PowerShell à partir de C# et assurez-vous que les espaces ne posent aucun problème?
Il me semble encore avoir le problème que si la valeur est quelque chose comme c: \ program files \ myprogram, la clé est c: \ program. :( – Mephisztoe
Peu importe, parfois cela aide quand vous savez comment séparer correctement les chaînes. ;-) Merci encore, votre solution m'a aidé à résoudre mon problème! – Mephisztoe
@Tronex - vous devriez définir la clé comme étant un paramètre pour votre script. PowerShell a de bons outils intégrés pour travailler avec les chemins. Peut-être poser une autre question à ce sujet. @ Kosi2801 a la bonne réponse pour l'ajout de paramètres. –