Board logo

标题: [请教]win2000很老的补丁不能用批处理安装?? [打印本页]

作者: xiaohhwy     时间: 2007-9-28 13:55    标题: [请教]win2000很老的补丁不能用批处理安装??

2007-09-26  13:12           308,320 vbs56nchs.exe
2007-09-26  13:12           365,616 Windows2000-KB823182-x86-CHS.exe
2007-09-26  13:11           390,704 Windows2000-KB823559-x86-CHS.exe
2007-09-26  13:12           328,752 Windows2000-KB824105-x86-CHS.exe
2007-09-26  13:17         2,970,104 Windows2000-KB837001-x86-CHS.EXE
2007-09-26  13:20         3,798,008 Windows2000-KB840987-x86-CHS.EXE
2007-09-26  13:20         2,207,224 Windows2000-KB841356-x86-CHS.EXE
2007-09-26  13:15           354,296 Windows2000-KB841872-x86-CHS.EXE
2007-09-26  13:19           383,480 Windows2000-KB891781-x86-CHS.EXE
2007-09-26  13:21           756,712 Windows2000-KB921503-x86-CHS.EXE
2007-09-26  13:20         1,622,384 Windows2000-KB925902-x86-CHS.EXE
2007-09-26  13:21           588,656 Windows2000-KB938827-x86-CHS.EXE
2007-09-26  13:12           336,744 Windows2000-KB826232-x86-CHS.exe
2007-09-26  13:13           351,592 Windows2000-KB828035-x86-CHS.exe
2007-09-26  13:19         6,880,248 Windows2000-KB835732-x86-CHS.EXE
2007-09-26  13:16           593,400 Windows2000-KB841873-x86-CHS.EXE
2007-09-26  13:13           393,208 Windows2000-KB842526-x86-CHS.EXE
2007-09-26  13:18           519,160 Windows2000-KB873339-x86-CHS.EXE

之前都是下载后用批处理安装的,大概是2003/2002年的

知道这里高手满多的,待来请教
作者: wudixin96     时间: 2007-9-28 13:57
安装时出现什么错误??
作者: xiaohhwy     时间: 2007-9-28 14:00
命令行语法错误。系统重启后,经验证没安装成功。

[ Last edited by xiaohhwy on 2007-9-28 at 02:03 PM ]
作者: wudixin96     时间: 2007-9-28 14:04
应该支持参数的吧??命令行下也不能看到参数??
作者: wudixin96     时间: 2007-9-28 14:05
把补丁参数图贴上来,再把你写的P贴上来
作者: xiaohhwy     时间: 2007-9-28 14:45
http://photos.i.cn.yahoo.com/pho ... 5c&pid=e1f7.jpg

http://photos.i.cn.yahoo.com/pho ... 5c&pid=721b.jpg
第一个图片有三个相同,留下的是第二个图片14个
作者: wudixin96     时间: 2007-9-28 14:49
还真是的,几个补丁的参数不一样哦,那只能把参数都找出来吧

不过应该在某个时间开始,参数变为第二张图了
作者: xiaohhwy     时间: 2007-9-28 14:55
@echo off
for %%i in (*.exe) do %%i -u  -q -z

=====================
@echo off
for %%i in (*.exe) do %%i /passive /norestart /norestart

自己研究写一下。安装是没出错
作者: xiaohhwy     时间: 2007-9-28 14:56
前三个是第一张贴图,后面14个是第二贴图
作者: wudixin96     时间: 2007-9-28 15:05


  Quote:
Originally posted by xiaohhwy at 2007-9-28 02:55 PM:
@echo off
for %%i in (*.exe) do %%i -u  -q -z

=====================
@echo off
for %%i in (*.exe) do %%i /passive /norestart /norestart

自己研究写一下。安装是没出错

这样会重复安装的吧??
作者: xiaohhwy     时间: 2007-9-28 15:18
@echo off
for %%i in (*.exe) do %%i -u  -q -z
与3个相应的文件放在一个目录

@echo off
for %%i in (*.exe) do %%i /passive /norestart /norestart
与14个相应的文件放在一个目录

经试验成功!!另外vbs56nchs.exe要单独安装。

能不能二个目录放在一个目录,二个批处理做成一个批处理?
作者: wudixin96     时间: 2007-9-28 15:24
可以的。vbs56nchs.exe没参数吗??
作者: xiaohhwy     时间: 2007-9-28 15:37
http://photos.i.cn.yahoo.com/pho ... 5c&pid=add8.jpg

请看。
作者: xiaohhwy     时间: 2007-9-29 08:07


  Quote:
Originally posted by wudixin96 at 2007-9-28 03:24 PM:
可以的。vbs56nchs.exe没参数吗??

可以的,下文呢??
作者: wudixin96     时间: 2007-9-29 09:58
试试这样??前提是文件的排列需要如1楼的排列
@echo off
for %%i in (*.exe) do (
  set num=0
  if /i "%%i"=="vbs56nchs.exe" %%i /q&&set num=1
  if /i "%%i"=="Windows2000-KB823559-x86-CHS.exe" %%i -u  -q -z&&set num=1
  if /i "%%i"=="Windows2000-KB823182-x86-CHS.exe" %%i -u  -q -z&&set num=1
  if /i "%%i"=="Windows2000-KB824105-x86-CHS.exe" %%i -u  -q -z&&set num=1
  setlocal enabledelayedexpansion
  if !num!==0 %%i /passive /norestart /norestart
  endlocal
)

pause
没测试,可能有问题的。
作者: xiaohhwy     时间: 2007-9-29 14:44
经测试成功!!!

请wudixin96高人能简要说一下原理。每条都是指行了什么,谢谢!!
作者: wudixin96     时间: 2007-9-29 14:50
原理是通过判断num变量来执行相应的补丁

如果num等于0,说明补丁的参数形式是:/passive /norestart /norestart
作者: xiaohhwy     时间: 2007-9-29 14:53
setlocal enabledelayedexpansion
  if !num!==0 %%i /passive /norestart /norestart
  endlocal

能解释一下吗?
作者: wudixin96     时间: 2007-9-29 15:02
因为在for里,变量要启用延迟,所以就用到了setlocal enabledelayedexpansion

如果不启用延迟的话,num变量永远等于初值的。
作者: xiaohhwy     时间: 2007-9-29 15:25
谢谢!!又热心又是高人!!祝好人一生平安!!