gpt4 book ai didi

python - 如何使用 Python 参数运行 PowerShell 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 20:36:45 26 4
gpt4 key购买 nike

我正在尝试运行具有 Python 3.7.3 参数的 PowerShell 脚本,但不知道如何正确调用 Popen 中的函数

我尝试使用 PowerShell 脚本登录 Cisco 路由器,并根据定义的数量在 x 台路由器上运行 Cisco IOS 命令。因此,我的 PowerShell 脚本设置方式是传入路由器的 IP 地址,如 .\test.ps1 177.241.87.103当我使用 PowerShell 时,或 powershell.\test.ps1 177.241.87.103当我使用命令提示符时。这两个命令都可以工作并获得正确的输出并将其输出保存到文本文件中。

但现在我想让 Python 使用参数运行这个“test.ps1”脚本。我已将“test.ps1”保存到“C:\Users\jgreen02”和“C:\Users\jgreen02\Desktop”

import subprocess

subprocess.call("powershell .\\test.ps1 177.241.87.103")

我确定我错误地使用了调用函数,或者我尝试运行的文件可能需要放置在我的 Python 脚本所在的文件夹中。

错误输出为:

Traceback (most recent call last):
File "C:/Users/jgreen02/PycharmProjects/PortChecker/Platypus.py", line 43, in <module>
subprocess.call(["powershell test.ps1 10.238.241.38"])
File "C:\Users\jgreen02\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 323, in call
with Popen(*popenargs, **kwargs) as p:
File "C:\Users\jgreen02\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "C:\Users\jgreen02\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified```

最佳答案

该方法存在两个问题:

code00.py:

#!/usr/bin/env python

import subprocess
import sys


def main(*argv):
cmd = ["PowerShell", "-ExecutionPolicy", "Unrestricted", "-File", ".\\script00.ps1"] # Specify relative or absolute path to the script
ec = subprocess.call(cmd)
print("Powershell returned: {:d}".format(ec))


if __name__ == "__main__":
print("Python {:s} {:03d}bit on {:s}\n".format(" ".join(item.strip() for item in sys.version.split("\n")),
64 if sys.maxsize > 0x100000000 else 32, sys.platform))
rc = main(*sys.argv[1:])
print("\nDone.\n")
sys.exit(rc)

script00.ps1:

${PSVersionTable}

输出:

cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057115405]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" code00.py
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] 064bit on win32


Name Value
---- -----
PSVersion 5.1.18362.145
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.18362.145
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1


Powershell returned: 0

Done.

关于python - 如何使用 Python 参数运行 PowerShell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57115405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com