如何从 python 脚本中将参数传递给 cmd.exe?

Posted

技术标签:

【中文标题】如何从 python 脚本中将参数传递给 cmd.exe?【英文标题】:How to pass argument to cmd.exe in from python script? 【发布时间】:2012-08-23 01:16:09 【问题描述】:

我希望能够从 Python 脚本和带有参数的特定命令运行 cmd.exe,但我似乎无法让它工作。

我试过了

cmdL = r"C:\WINDOWS\system32\cmd.exe"
schTasks = "schtasks.exe"
#run the schtasks.exe
os.system(cmdL + schTasks)

但是dos窗口出现然后很快消失。

我做错了什么?

谢谢

【问题讨论】:

为什么你认为它应该存在? 您应该使用subprocess 模块。见:***.com/a/912847/1224443 我对windows了解不多,但cmd.exeschtasks.exe之间似乎应该有一个空格。另外,您可能应该查看subprocess 因为我只将cmdL变量添加到os.system时,它并没有消失。 【参考方案1】:

从 Python 脚本执行进程的现代方式是使用 subprocess 模块:

import subprocess
subprocess.call(["schtasks.exe"])

你也可以传递参数,例如:

subprocess.call(["ls", "-l"])

这意味着您不需要使用cmd.exe。 Python 将根据需要使用给定的参数执行给定的可执行文件。

【讨论】:

【参考方案2】:

您忘记了cmd.exe 和参数之间的空格。

os.system("%s %s" % (cmdL, schTasks))

尽管如此,通过subprocess 像其他答案一样更好。

【讨论】:

以上是关于如何从 python 脚本中将参数传递给 cmd.exe?的主要内容,如果未能解决你的问题,请参考以下文章

如何从类定义中将参数传递给元类?

在python 3中将参数传递给exec

如何将参数传递给 erlang os:cmd()?

在 Scrapy python 中将参数传递给 process.crawl

如何在 Delphi 2010 中将参数传递给 flash 电影?

如何从 Git Bash 中将命令行参数传递给 Windows 应用程序?