Windows上的Python子进程

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

我有一个Windows可执行文件,我试图从Windows 2016服务器上的python脚本中运行。基本上,我这样做:

import subprocess

myCmd = 'run.exe foo'
result = subprocess.run(myCmd) # tried it with & without shell=True

如果我从python或ipython shell运行此程序,它就可以正常工作。如果我从脚本运行它,它什么也不做,但是返回码为0(结果-> CompletedProcess(args ='run.exe foo',returncode = 0)。

显然我做错了:(。有人可以指出我正确的方向吗?

python subprocess
1个回答
0
投票

您确定您在正确的目录中以便可以找到run.exe吗?您可以尝试将完整路径放入run.exe

编辑:根据https://docs.python.org/3/library/subprocess.html#subprocess.run,您需要运行subprocess.run(myCmd.split(' '))subprocess.run([myCmd], shell=True),但如果您根据用户输入来制作myCmd,则后者可能会打开您的Shell注入漏洞的大门

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