所以我正在创建一个应用程序,它可以将打印机与在后台运行 PowerShell 脚本的 Python GUI 连接起来。我想知道是否有一种方法可以将从 Python 小部件输入的变量传递到 Python 调用的 PowerShell 脚本中。此变量将是我可以在 Python 中指定的打印机名称,这样我就不必为每台打印机创建单独的脚本。
调用 PS 脚本的 Python 代码:
def connect():
if self.printerOpts.get() == 'Chosen Printer':
subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe",'-ExecutionPolicy','Unrestricted', '.\'./ScriptName\';'])
将打印机连接到计算机的 PS 脚本:
Add-Printer -ConnectionName \\server\printer -AsJob
基本上,我想知道我是否可以将一个变量从 Python 传递到我的 PS 脚本的“打印机”部分,这样我就不必为我想添加的每台打印机创建不同的脚本。
请您参考如下方法:
执行此操作的更好方法是完全使用 PowerShell 或完全使用 Python。
您所追求的是可行的。您可以采用与传递 -ExecutionPolicy Unrestricted 相同的方式传递它,方法是确保 PowerShell 脚本需要该变量。
我的 Python 不存在,所以如果那部分不起作用,请耐心等待。
python
myPrinter # string variable in Python with printer name
subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe",'-ExecutionPolicy','Unrestricted', '.\'./ScriptName\';','-printer',myPrinter])
PowerShell
param(
$printer
)
Add-Printer -ConnectionName \\server\$printer -AsJob
