如何通过启动过程Powershell传递python参数

问题描述 投票:0回答:1

我想以其他用户的身份打开一个进程,对此我进行了很多研究,发现没有cmd或python脚本可以帮助我实现目标,但是powershell的Start-Process命令可以。我目前面临的问题是在Powershell中通过Start-Process将参数传递给python脚本时。我尝试使用-ArgumentList,但这对我没有帮助,因为我必须将参数作为dict传递给python。以下是我正在运行的脚本:Start-Process python.exe "E:\test_installer\src\client\sql_server\sql_agent_ process.py" {"request_type": "backup", "client_id": 15, "request_id": 39431, "bkpset_id": 18, "ppid": 33796, "fromsource": "True"}有人可以在这里帮我吗?提前致谢。

python powershell
1个回答
0
投票

您可以尝试将参数作为string传递给脚本,然后使用ast.literal_eval将其转换回字典。

在您的python脚本中,使用sys.argv获取命令行参数。它应该看起来像这样:

import sys
import ast
command_line_args = ast.literal_eval(sys.argv[1])

而调用命令是:

© www.soinside.com 2019 - 2024. All rights reserved.