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
作者: 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
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
作者: xiaohhwy     时间: 2007-9-29 08:07
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
谢谢!!又热心又是高人!!祝好人一生平安!!