2024-09-22 16:28:05 发布
网友
我有一个文件:“abc”,它是一个可执行文件。 我想通过Phthon或windows CMD执行它
如果我写代码:
subprocess.Popen('-a -b -c', creationflags=0x08, shell=True, executable="C:\\abc")
然后,执行了abc,但忽略了参数(-a-b-c)
那么…我怎么能喜欢它呢
在PowerShell中
& "C:\abc.exe"
为什么不将代码更改为以下版本
args = ['C:\\abc', '-a', '-b', '-c'] p = subprocess.Popen(' '.join(args), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
或者不使用shell=True,您可以进一步将其减少到
shell=True
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
或者,您可以使用其他方法从exe获取输出并向其传递参数
Output = subprocess.check_output(' '.join(args), shell=True).decode()
最后,我自己找到了答案,那就是使用win32process.CreateProcess 感谢其他作者,但他们的答案是错误的
win32process.CreateProcess
正确答案是:
win32process.CreateProcess(r"C:\abc", "-a -b -c", None, None, 0, 0, None, None, win32process.STARTUPINFO())
以下答案无效:
subprocess.Popen('-a -b -c', creationflags=0x08, shell=True, executable="C:\\abc") #or p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
也许我真的不知道如何使用subprocess,但是Windows真的很特别。没有后缀的可执行文件不能直接在命令行上执行
subprocess
Windows
在PowerShell中
为什么不将代码更改为以下版本
或者不使用
shell=True
,您可以进一步将其减少到或者,您可以使用其他方法从exe获取输出并向其传递参数
最后,我自己找到了答案,那就是使用
win32process.CreateProcess
感谢其他作者,但他们的答案是错误的正确答案是:
以下答案无效:
也许我真的不知道如何使用
subprocess
,但是Windows
真的很特别。没有后缀的可执行文件不能直接在命令行上执行相关问题 更多 >
编程相关推荐