无忧启动论坛

标题: 求一个bat批处理调用cmd的问题 [打印本页]

作者: pzppzp    时间: 2020-12-20 09:32
标题: 求一个bat批处理调用cmd的问题
.\7-Zip\7z.exe x Office2007.7z -y -aos -o"%ProgramFiles%"
.\Office2007\setup.cmd
del /f Office2007.7z
del /f OFFICE.ico
执行完上面2行后下面的2行不执行了,请问要怎么改?
作者: 窄口牛    时间: 2020-12-20 09:39
后两行写到setup.cmd里面去,不是非常简单?
作者: pzppzp    时间: 2020-12-20 09:46
.\7-Zip\7z.exe x Office2007.7z -y -aos -o"%ProgramFiles%"
call .\Office2007\setup.cmd
del /f Office2007.7z
del /f OFFICE.ico
这样还是不行,后面两行不执行,因为不想改setup.cmd。
作者: junyee    时间: 2020-12-20 09:48
批处理的执行方式有点奇怪.

在批处理中直接运行其它的批处理,不会返回.
而运行可执行文件则会返回.

如 slore 说,加个 call 就可以了.
或者用 start.
用 start 的好处是可以指定工作目录.




作者: pzppzp    时间: 2020-12-20 09:55
没办法,那后面的只能写到setup.cmd里面去了
作者: 窄口牛    时间: 2020-12-20 10:01
本帖最后由 窄口牛 于 2020-12-20 10:02 编辑

第二句改成start的。
作者: 永远的大象    时间: 2020-12-20 12:26
方法有二:
一:把后面两行写到 Setup.cmd
二:把 Setup.cmd 里面的 exit 命令加上参数 /b ,像这样:( exit /b )
    然后调用时用 call 命令调用(即在你第二行命令前加上 call)
作者: pzppzp    时间: 2020-12-20 12:35
感谢!用start可以了
作者: dos时代菜鸟    时间: 2020-12-21 15:54
set cd_x=%cd%
.\7-Zip\7z.exe x Office2007.7z -y -aos -o"%ProgramFiles%"
call "%ProgramFiles%"\Office2007\setup.cmd
del /f  "cd_x"\Office2007.7z
del /f  "cd_x"\OFFICE.ico

十分怀疑 setup.cmd 中有命令改变了当前工作目录。

作者: wynew8au    时间: 2020-12-21 16:48
call 是会改变工作目录。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3