问题描述
我希望在不使用参数的情况下将变量从 Python 脚本传递到 Powershell 脚本的变量中。
var_pass_test.py
import subprocess,sys
setup_script = 'C:\\Users\\user\\Desktop\\Code\\Creation\\var_pass_test.ps1'
test1 = "Hello"
p = subprocess.run(["powershell.exe",setup_script],test1,stdout=sys.stdout)
var_pass_test.ps1
Write-Host $test1
如何做到这一点,使 Powershell 脚本从 Python 脚本接收 test1
的值?这对 subprocess
库是否可行?
解决方法
-
要将参数逐字传递给 PowerShell CLI,请使用
-File
选项:首先传递脚本文件路径,然后是传递给脚本的参数。 -
在 Python 中,作为第一个数组值参数的一部分传递构成 PowerShell 命令行的所有参数:
import subprocess,sys
setup_script = 'C:\\Users\\user\\Desktop\\Code\\Creation\\var_pass_test.ps1'
test1 = "Hello"
p = subprocess.run([
"powershell.exe","-File",setup_script,test1
],stdout=sys.stdout)