3 votes

Comment passer une variable de type chaîne de caractères à une fonction PowerShell depuis python ?

Comment puis-je passer des couleurs variables à imprimer depuis un script python en appelant une fonction powershell.

function check($color){
    Write-Host "I have a $color shirt"
}

import subprocess
color = "blue"
subprocess.call(["powershell.exe", '-Command', '&{. "./colortest.ps1"; & check(color)}'])

Le code ci-dessus donne lieu à l'erreur suivante

color : The term 'color' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the 
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:27
+ &{. "./colortest.ps1"; & check(color)}
+                           ~~~
    + CategoryInfo          : ObjectNotFound: (color:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Si j'insère directement la couleur réelle en tant que paramètre constant, j'obtiens le résultat souhaité, mais son remplacement par une variable échoue.

subprocess.call(["powershell.exe", '-Command', '&{. "./colortest.ps1"; & check("blue")}'])

Résultat

I have a blue shirt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X