python程序中如何连续调用cmd命令

milosz 2012-07-13 02:45:23

import os
import subprocess
def command_line():
cmd_path='cmd /k cd /d c:\\Program Files\\InstallShield\\PackageForTheWeb 4\\'
os.system(cmd_path)
os.system('pftwwiz.exe Projects\\ScanMailforDomino.pfw -a -s')
command_line()

就如上所述,如果在cmd命令行中,应该是这样的:我先进入到那个路径c:\\Program Files\\InstallShield\\PackageForTheWeb 4下面,然后在该路径中执行下面的那个命令pftwwiz.exe Projects\\ScanMailforDomino.pfw -a -s就可以。
可是在python程序中,每执行完第一条命令cmd_path之后,程序就会退回默认路径,然后第二条命令还是在默认路径下执行,导致失败(因为第二条命令依赖pftwwiz.exe的安装路径,也就是第一条命令)
我被这个问题困扰的好久,也用subprocess模块试了试,还是没有结果,怎么才能让python调用cmd命令连续执行呢
...全文
10092 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Angelia_zhu 2014-03-04
  • 打赏
  • 举报
回复
Gloveing 2012-07-14
  • 打赏
  • 举报
回复 1
熟悉批处理的话,多简单呢。。哈哈



os.system('cd "c:\\Program Files\\InstallShield\\PackageForTheWeb 4\\" & pftwwiz.exe Projects\\ScanMailforDomino.pfw -a -s')
I_NBFA 2012-07-13
  • 打赏
  • 举报
回复
os.system('echo the first command&&echo the second command');
就是"&&",一个&也行,前者只有前面的命令执行成功才执行后面命令,后者不管前面是否成功都执行下去。
bugs2k 2012-07-13
  • 打赏
  • 举报
回复
os.system('c:\\Program Files\\InstallShield\\PackageForTheWeb 4\\pftwwiz.exe Projects\\ScanMailforDomino.pfw -a -s')
bugs2k 2012-07-13
  • 打赏
  • 举报
回复
os.system('pftwwiz.exe c:\\Program Files\\InstallShield\\PackageForTheWeb 4\\Projects\\ScanMailforDomino.pfw -a -s')
milosz 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

能用&就用&在一次system中连起来,不行就换batch,现在powershell也灰常强大,这活本来就该shell干
[/Quote]可以举个例子吗?我合并试过了,但是总是运行到第一条命令就自动停下来了
milosz 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

lz 应该考虑启动外部程序时的工作路径

比如 Popen 可以设置 cwd
[/Quote]可以说的更详细一点吗?我是在windows平台
milosz 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

因每次 os.system 都会创建一个 shell 进程来执行其中的命令,所以两个 os.system 之间很难建立起关联来。
试试将路径合并到第二个 os.system 中吧
[/Quote]
怎么合并啊,我实在windos平台的,&合并吗?我找不到具体的语法
I_NBFA 2012-07-13
  • 打赏
  • 举报
回复
能用&就用&在一次system中连起来,不行就换batch,现在powershell也灰常强大,这活本来就该shell干
fox000002 2012-07-13
  • 打赏
  • 举报
回复
lz 应该考虑启动外部程序时的工作路径

比如 Popen 可以设置 cwd
bugs2k 2012-07-13
  • 打赏
  • 举报
回复
因每次 os.system 都会创建一个 shell 进程来执行其中的命令,所以两个 os.system 之间很难建立起关联来。
试试将路径合并到第二个 os.system 中吧

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧