python运行带选项的CMD命令

时间:2013-09-28 09:18:58

标签: python cmd system

这令人沮丧。我搜索了很多,但没有一个结果对我有帮助。我尝试过subprocess但我仍然无法让它工作。基本上我想让这条线工作:

appName = "ap01"
optna = "-server"
optnb = "-filename=c:/test.VS"
optnc = "-display=1"

os.system('start "VSM" "C:/bin/" {appName, optna, optnb, optnc} ')

在CMD中,我只需输入

即可
CD C:/bin/

按Enter键然后:

ap01 -server -filename=C:/test.VS -display=1 

1 个答案:

答案 0 :(得分:0)

怎么样:

import os

appName = "ap01"
opts =[
    "-server",
    "-filename=c:/test.VS",
    "-display=1"
]

opts = ' '.join(opts)
os.system(r'start "" "C:\bin\{:}" {:}'.format(appName, opts) )

很难测试,因为我没有ap01但是使用简单的批处理文件。无论如何你应该像@ l4mpi评论一样使用子过程。那就是:

import subprocess
import os

app=[
    "ap01.ext",
    "-server",
    "-filename=c:/test.VS",
    "-display=1"
]

os.chdir('"C:/bin/')
subprocess.call(app, shell=True)

请注意,这在Windows上有点挑剔,因为它需要知道应用程序的完整名称。至于天气与否,应用程序可以通过esc终止取决于ap01的性质。如果你通过shell运行它是肯定的,它是可终止的,因为shell依赖并且可以终止。如果你管道它然后它可能会或可能不会。您应该使用 INSTSRV.EXE

启动并将其转换为服务