无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4142|回复: 10
打印 上一主题 下一主题

[求助] 求一个bat批处理调用cmd的问题

[复制链接]
跳转到指定楼层
1#
发表于 2020-12-20 09:32:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
.\7-Zip\7z.exe x Office2007.7z -y -aos -o"%ProgramFiles%"
.\Office2007\setup.cmd
del /f Office2007.7z
del /f OFFICE.ico
执行完上面2行后下面的2行不执行了,请问要怎么改?

点评

call setup.cmd  发表于 2020-12-20 09:36
2#
发表于 2020-12-20 09:39:07 来自手机 | 只看该作者
后两行写到setup.cmd里面去,不是非常简单?
回复

使用道具 举报

3#
 楼主| 发表于 2020-12-20 09:46:04 | 只看该作者
.\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。
回复

使用道具 举报

4#
发表于 2020-12-20 09:48:15 | 只看该作者
批处理的执行方式有点奇怪.

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

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



回复

使用道具 举报

5#
 楼主| 发表于 2020-12-20 09:55:43 | 只看该作者
没办法,那后面的只能写到setup.cmd里面去了
回复

使用道具 举报

6#
发表于 2020-12-20 10:01:34 来自手机 | 只看该作者
本帖最后由 窄口牛 于 2020-12-20 10:02 编辑

第二句改成start的。
回复

使用道具 举报

7#
发表于 2020-12-20 12:26:31 | 只看该作者
方法有二:
一:把后面两行写到 Setup.cmd
二:把 Setup.cmd 里面的 exit 命令加上参数 /b ,像这样:( exit /b )
    然后调用时用 call 命令调用(即在你第二行命令前加上 call)
回复

使用道具 举报

8#
 楼主| 发表于 2020-12-20 12:35:31 | 只看该作者
感谢!用start可以了
回复

使用道具 举报

9#
发表于 2020-12-21 15:54:53 | 只看该作者
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 中有命令改变了当前工作目录。
回复

使用道具 举报

10#
发表于 2020-12-21 16:48:22 | 只看该作者
call 是会改变工作目录。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 07:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表