2012-08-28 79 views
1

我想能够从一个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窗口,然后消失快。

我在做什么错?

感谢

+1

为什么你认为它应该坚持? –

+0

你应该使用'subprocess'模块。请参阅:http://stackoverflow.com/a/912847/1224443 – gabrtv

+1

我对windows的了解不多,但似乎在'cmd.exe'和'schtasks.exe'之间应该有空格。另外,你应该看看'subprocess'。 – mgilson

回答

1

从一个Python脚本执行过程的现代方法是使用subprocess模块:

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

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

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

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

+0

非常感谢,现在工作。 – MapMan

0

你忘了cmd.exe和参数之间的空间。

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

尽管如此,通过subprocess像其他答案更好的方式。