【问题标题】:How to pass argument to cmd.exe in from python script?如何从 python 脚本中将参数传递给 cmd.exe?
【发布时间】: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 模块。见:stackoverflow.com/a/912847/1224443
  • 我对windows了解不多,但cmd.exeschtasks.exe之间似乎应该有一个空格。另外,您可能应该查看subprocess
  • 因为我只将cmdL变量添加到os.system时,它并没有消失。

标签: python subprocess command-line-arguments cmd


【解决方案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 像其他答案一样更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 2019-12-20
      • 2023-03-14
      相关资源
      最近更新 更多