将 Python 变量传递给 Powershell 脚本

问题描述

我希望在不使用参数的情况下将变量从 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)