无忧启动论坛
标题:
FOR+IF复合语句为何出错,请大师批下
[打印本页]
作者:
wanxibing
时间:
2011-10-8 21:59
标题:
FOR+IF复合语句为何出错,请大师批下
我想请都大师帮我写个批处理
能自动安装下载回来的更新程序,并有个安装.log文件,能记录哪些程序已成功安装,哪些是安装失败,我自已已写了个就是对的也是成功安装,错误的也是成功安装,不知为何?
我写的批处是这样的:
for %%a in (*.exe) do (
start /wait %%a /quiet /norestart
if errorlevel 1 (echo %%a 错误!未安装 >>"%date%setup.txt") else echo %%a 已成功安装 >>"%date%setup.txt"
)
SpxImage2.gif
(15.62 KB, 下载次数: 47)
下载附件
2011-10-8 21:59 上传
作者:
pznpt
时间:
2011-10-8 22:16
看错误提示貌似是/quiet /norestart 不对?
作者:
wanxibing
时间:
2011-10-8 22:23
点了确定就是成功安装了 为何呢
作者:
pznpt
时间:
2011-10-8 23:33
errorlevel 1 改成 %errorlevel%==1 试试
高手们继续解答吧
作者:
x9tian
时间:
2011-10-10 10:40
errorlevel 变量,在FOR 语句中多次出现, 多次重复赋值,这己经涉及到变量延时的问题了, 你不启用变量延时能不出错么、?
还有就是楼上提到的, if 语句格式写错了,
其次,如果,%%a 是个有空格的文件名,那么运行是, for 语句,也会出错, 既使,你加上 usebackq 参数, start 的输写,也不严谨,
如果遇到包含空格文件的可持行文件 会变成, start /wait "%%a" /quiet /norestart 很名显,%%a 自动被FOR语句补上了引号,无形中又变成了,start 命令的,窗口名。
批量安装程序, 单FOR 语句是存在很多地方要处理的, 最麻烦的是如果,遇到文件名带括号,你就死翘翘了, 一般严谨点都是 for /f 加DIR 命令, 列出要处理的文件, DELMS=指无或tokens指*,外理才能通用。
作者:
bbsphixy
时间:
2011-10-22 23:58
我是觉得你的for语句有问题!
还有得考虑start执行文件的问题,start不允许带空格的文件
我还真不知道start还有/quiet /norestart 参数!
if判断也有问题
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3