Board logo

标题: [其他] bat单独运行和用winrar封装后运行结果不同 [打印本页]

作者: zhangf189    时间: 2017-9-28 15:57     标题: bat单独运行和用winrar封装后运行结果不同

大家好,我这边有几个补丁和exe文件,搞了个bat文件,将所有文件执行命令写入其中,单独运行bat文件会把所有补丁和exe都安装好,我现在用winrar进行了封装,调用的是bat,而后为了实现全隐藏,我这边写了一个简单的VBS执行文件,里面就是简单的去调用bat文件。这样双击vbs后实现不出现任何画面,程序全部装好。但通过vbs去调用bat这种方法,只会执行第一条命令 后面的命令不执行,但单独运行bat完全没问题,想问问大神们是什么原因
作者: Batcher    时间: 2017-9-28 21:36

vbs和bat完整代码发出来看看
作者: 窄口牛    时间: 2017-9-28 22:13

给你个谜语猜,你倒是猜吧,还问上了?
作者: zhangf189    时间: 2017-9-29 09:21

回复 2# Batcher


bat代码
@echo on
for /r "%~dp0" %%c in (Windows6.1-*.msu) do start /wait wusa "%%c" /quiet /norestart
dism /Online /Add-Package /PackagePath:"%~dp0IE-Win7.CAB" /quiet /norestart
dism /Online /Add-Package /PackagePath:"%~dp0ielangpack-zh-CN.CAB" /quiet /norestart
start /wait wusa "%~dp0IE-Spelling-en.MSU" /quiet /norestart
start /wait wusa "%~dp0IE-Hyphenation-en.MSU" /quiet /norestart


vbs代码
set ws=createobject("wscript.shell")
ws.run "IE11X86.bat",0

现在发现bat代码会运行for后面的一条语句  从dism开始就不运行了   现在发现报错了  因为我是64位系统   运行到dism这行就报“无法使用32位版本的dism为正在运行的64位操作系统服务”
这个dism不应该都是系统自带的么  还是说路径有问题
作者: WHY    时间: 2017-10-2 11:58

有可能 WinRAR 为 32 位版本而非 64 位版本,这样制作的自解压文件会调用 SysWOW64 中的 DISM
可以试试在代码适当位置加上 cd /d %windir%\system32
作者: kingshui    时间: 2017-10-3 14:29

目测路径问题...这种调用的最好不要用%~dp0.....
用echo  pause调试下看看路径对不? 最好先pushd %~dp0吧.




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2