我想能够从一个Python脚本和一个特定的命令与参数运行cmd.exe,但我似乎无法得到它的工作。如何从python脚本将参数传递给cmd.exe?
我已经试过
cmdL = r"C:\WINDOWS\system32\cmd.exe"
schTasks = "schtasks.exe"
#run the schtasks.exe
os.system(cmdL + schTasks)
,但出现的dos窗口,然后消失快。
我在做什么错?
感谢
我想能够从一个Python脚本和一个特定的命令与参数运行cmd.exe,但我似乎无法得到它的工作。如何从python脚本将参数传递给cmd.exe?
我已经试过
cmdL = r"C:\WINDOWS\system32\cmd.exe"
schTasks = "schtasks.exe"
#run the schtasks.exe
os.system(cmdL + schTasks)
,但出现的dos窗口,然后消失快。
我在做什么错?
感谢
从一个Python脚本执行过程的现代方法是使用subprocess模块:
import subprocess
subprocess.call(["schtasks.exe"])
您也可以传递参数,例如:
subprocess.call(["ls", "-l"])
这意味着你不会需要利用cmd.exe
。 Python将根据需要使用给定的参数执行给定的可执行文件。
非常感谢,现在工作。 – MapMan
你忘了cmd.exe
和参数之间的空间。
os.system("%s %s" % (cmdL, schTasks))
尽管如此,通过subprocess
像其他答案更好的方式。
为什么你认为它应该坚持? –
你应该使用'subprocess'模块。请参阅:http://stackoverflow.com/a/912847/1224443 – gabrtv
我对windows的了解不多,但似乎在'cmd.exe'和'schtasks.exe'之间应该有空格。另外,你应该看看'subprocess'。 – mgilson