系统补丁自动安装批处理方法


代码如下:
-----------------------------------------------------------------
@echo off
::关闭显示信息
cls
echo ================================================
del list.log /q
::删除上次运行后留下的文件
dir *-kb*.exe /b /o:n >list1.log
::将补丁文件按照名字排列存放在list1.log文件里
for /f "delims=- tokens=2" %%i in (list1.log) do REG QUERY "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionHotFix%%i" || dir /b *%%i*.exe >>list.log
::从list1.log文件中取出一个补丁的名字,截取中间的补丁标号(如KB873339),到注册表查询这个是否已经安装了,没有就将其存放到list.log文件里

echo 现在开始安装补丁
for /f "eol=o eol=O " %%j in (list.log) do echo 正在安装补丁%%j && %%j /quiet /norestart
::从list.log文件中取出一个补丁的名字,利用参数(/quiet /norestart)进行安装无人安装

echo 恭喜你,补丁程序安装完毕
echo 安装了的补丁(list.log):& type list.log | more
::显示安装了的补丁的列表,more是用来防止补丁过多,分屏显示用的
pause
::暂停让别人看列表
del list1.log /q
::删除使用过的list1.log文件
set /p YN=是否重新启动电脑,以使更改立即生效,强烈建议重新启动电脑[Y/N]?
if "%YN%" == "N" goto :EOF
if "%YN%" == "n" goto :EOF
shutdown -r -t 0
goto :EOF
----------------------------------------------------------------
新建立一个记事本文件,将上面代码拷贝到文件中存为AutoUpdate.bat,放到下载的所有补丁文件夹中,运行即可自动所有安装补丁了
轻松批处理自动安装大量系统补丁

有时候系统重装后需要再安装补丁,恰好遇见补丁下载慢的情况很多
这几天研究了用DOS批处理安装的办法
我的补丁放在D盘下 bd文件夹里面
运行CMD
命令
dir/b Z:bd>a.txt
意思是仅提取"d:bd"目录中的所有文件的文件名并将其保存在a.txt
参数"/b"的意思是不显示文件的头信息及统计信息
然后打开a.txt
如下形式
WindowsXP-KB913580-x86-CHS.exe
WindowsXP-KB911567-x86-CHS.exe
WindowsXP-KB908531-v2-x86-CHS.exe
WindowsXP-KB911562-x86-CHS.exe
然后改为(可以替换)
start /wait Z:bdWindowsXP-KB920214-x86-CHS.exe /U /Q /Z
start /wait Z:bdWindowsXP-KB920670-x86-CHS.exe /U /Q /Z
start /wait Z:bdWindowsXP-KB920683-x86-CHS.exe /U /Q /Z
exit
说明:“Start”是Windows系统自带的DOS命令,它的作用是用来调用应用程序的;“/wait”表示启用应用程序并等待其结束,然后再执行下一个应用程序;参数“/U”表示使用无人参与模式,参数“/Q”表示无用户交互,参数“/Z”表示安装完成时不重新启动计算机。
该为.bat格式
运行就可以了


相关文档
最新文档