【问题标题】:Passing Python Variables to Powershell Script将 Python 变量传递给 Powershell 脚本
【发布时间】:2021-08-14 04:03:19
【问题描述】:

我希望在不使用参数的情况下将 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 库是否可行?

【问题讨论】:

  • this 的可能重复项,但我不确定您所说的“不使用参数”是什么意思。如果您在 Powershell 而不是 python 中运行它,您将如何将参数传递给 Powershell?
  • 我同意@Kraigolas,您正在尝试不使用子弹射击。话虽如此,将 test1 放入临时文件并从 Powershell 读取它会 工作,但它很丑陋,直接将参数传递给 Powershell 就是这样做的方法。

标签: python powershell scripting subprocess


【解决方案1】:
  • 要将参数逐字传递给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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2013-10-24
    相关资源
    最近更新 更多