python启动包含pause命令的批处理文件,抛出异常

时间:2012-09-21 12:04:27

标签: python batch-file operating-system

我写了一个简单的python脚本,它启动(os.start(path))一个批处理文件并等待os.spawnv(os.P_WAIT,bat,())完成。

问题是它引发了异常:

“exceptions.EOFError:[Errno 10054]远程主机强行关闭现有连接”

脚本在Windows 7 64bit上运行,批处理文件包含简单命令,如cd ..

代码:

import os
bat = r'C:\new folder\start.bat'
os.spawnv(os.P_WAIT,bat,())
print "ok"

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

要在Windows上运行批处理文件,您实际上必须使用带有参数的os.spawn()subprocess.call()来模拟类似于以下内容的命令行:

cmd.exe /c "C:\new folder\start.bat"

/c的{​​{1}}参数告诉它执行提供的命令并退出。您还需要在包含嵌入空格字符的任何路径周围放置双引号,如上所示。