![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 12:53 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已完成]批量更新系统update补丁的批处理 |
| 可打印版本 4,406 / 11 |
| 第1楼 yardian | 发表于 2006-12-27 01:20 |
| 中级用户 发帖 85 积分 305 | |
|
[已完成]批量更新系统update补丁的批处理 我的目的是想首先检查系统已经打了哪些补丁,然后在生成批处理时不要将这些加进去。但是没有达到预期目的。 实现了批量安装以及避免重复安装的问题。目前已知问题:1搜索已安装补丁时的信息没能去掉;2对于使用msi安装的补丁,没有解决。完成代码如下: 1完全是自己写的。缺点就是如果有相同内容会显示很多空行,2是参考lxmxn写的。 [ Last edited by yardian on 2006-12-27 at 05:29 AM ] |
|
| 第2楼 yardian | 发表于 2006-12-27 03:04 |
| 中级用户 发帖 85 积分 305 | |
|
可能我上在的表达不够清楚,竟然没人帮忙。我再重新说一下:
有这样两个文件: list.txt KB867460 KB837272 KB889101 KB911927 KB917344 KB918439 KB920213 KB923414 KB925454 list.bat WindowsServer2003-KB889101-SP1-x86-CHS.exe /z /q WindowsServer2003-KB925454-x86-CHS.exe /z /q WindowsServer2003-KB911927-x86-CHS.exe /z /q WindowsServer2003-KB917344-x86-CHS.exe /z /q WindowsServer2003-KB918439-x86-CHS.exe /z /q WindowsServer2003-KB920213-x86-CHS.exe /z /q WindowsServer2003-KB923414-x86-CHS.exe /z /q msxml4-KB927978-chs.exe /z /q WindowsServer2003-KB923694-x86-CHS.exe /z /q WindowsServer2003-KB917537-x86-CHS.exe /z /q WindowsServer2003-KB923980-x86-CHS.exe /z /q WindowsServer2003-KB917953-x86-CHS.exe /z /q WindowsServer2003-KB923191-x86-CHS.exe /z /q WindowsServer2003-KB917422-x86-CHS.exe /z /q WindowsServer2003-KB899591-x86-CHS.exe /z /q WindowsServer2003-KB924191-x86-CHS.exe /z /q WindowsServer2003-KB900725-x86-CHS.exe /z /q WindowsServer2003-KB914389-x86-CHS.exe /z /q WindowsServer2003-KB908981-x86-CHS.exe /z /q WindowsServer2003-KB912919-x86-CHS.exe /z /q WindowsServer2003-KB920670-x86-CHS.exe /z /q WindowsServer2003-KB899589-x86-CHS.exe /z /q WindowsServer2003-KB914388-x86-CHS.exe /z /q WindowsServer2003-KB921883-v2-x86-CHS.exe /z /q WindowsServer2003-KB920685-x86-CHS.exe /z /q WindowsServer2003-KB901190-x86-CHS.exe /z /q WindowsServer2003-KB912818-v3-x86-CHS.exe /z /q WindowsServer2003-KB899588-x86-CHS.exe /z /q WindowsServer2003-KB922582-x86-CHS.exe /z /q WindowsServer2003-KB901214-x86-CHS.exe /z /q WindowsServer2003-KB893756-x86-CHS.exe /z /q WindowsServer2003-KB925486-x86-CHS.exe /z /q WindowsServer2003-KB908531-v2-x86-CHS.exe /z /q WindowsServer2003-KB899587-x86-CHS.exe /z /q WindowsServer2003-KB923689-x86-CHS.exe /z /q WindowsServer2003-KB896428-x86-chs.exe /z /q WindowsServer2003-KB898715-x86-chs.exe /z /q WindowsServer2003-KB922616-x86-CHS.exe /z /q WindowsMedia-KB911564-x86-CHS.exe /z /q WindowsServer2003-KB926247-x86-CHS.exe /z /q WindowsServer2003-KB922819-x86-CHS.exe /z /q WindowsServer2003-KB904706-v2-x86-CHS.exe /z /q WindowsServer2003-KB929120-x86-CHS.exe /z /q WindowsServer2003-KB920683-x86-CHS.exe /z /q WindowsServer2003-KB921398-x86-CHS.exe /z /q WindowsServer2003-KB911280-v2-x86-CHS.exe /z /q WindowsServer2003-KB928388-x86-CHS.exe /z /q WindowsServer2003-KB908519-x86-CHS.exe /z /q WindowsServer2003-KB896358-x86-chs.exe /z /q WindowsServer2003-KB911562-x86-CHS.exe /z /q WindowsServer2003-KB905414-x86-CHS.exe /z /q WindowsServer2003-KB910437-x86-CHS.exe /z /q WindowsServer2003-KB917734-x86-CHS.exe /z /q WindowsServer2003-KB901017-x86-CHS.exe /z /q WindowsServer2003-KB896424-x86-CHS.exe /z /q Windows-KB909520-v1.000-x86-CHS.exe /z /q 现在如何实现如果list.bat包含list.txt中的字符串,则将该行删除。 |
|
| 第3楼 yardian | 发表于 2006-12-27 03:23 |
| 中级用户 发帖 85 积分 305 | |
|
晕,不是吧。还没人能明白我的意思?
|
|
| 第4楼 lxmxn | 发表于 2006-12-27 03:54 |
| 版主 发帖 4,938 积分 11,386 | |
|
|
|
| 第5楼 yardian | 发表于 2006-12-27 04:02 |
| 中级用户 发帖 85 积分 305 | |
|
呵呵,到底是高手。不一样啊。我想了半天才想出来一种方法。
for /f "tokens=1,2* delims=- " %%i in (list.bat) do (findstr /i "%%j" list.txt>nul &&echo.||echo %%i-%%j-%%k>>list1.bat) |
|
| 第6楼 kafen | 发表于 2006-12-27 09:34 |
| 初级用户 发帖 43 积分 97 | |
|
这个不错,可楼主,我还是看不明白,你主题上的已完成是什么意思?你所说的问题都解决了吗?
还有下载的qchain.exe是win2K_sp1? [ Last edited by kafen on 2006-12-27 at 09:37 AM ] |
|
| 第7楼 ronin | 发表于 2007-01-09 02:29 |
| 中级用户 发帖 111 积分 421 | |
|
这个是用list.txt来确认是否安装过的补丁吗,这样那个不好,要检测系统是否安装好了补丁才行,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix里面有纪录,应该是将这个已经安装的列表出来对比才行
|
|
| 第8楼 dikex | 发表于 2007-01-09 02:41 |
| 高级用户 发帖 366 积分 788 | |
@echo off 我前段时间写的,看看吧 不过有些补丁是特殊的,如msxml4-KB927978-chs.exe是不会在HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix里面记录的,而flash的那个补丁使用的安装包的形式不同,需要使用其他的参数,懒得写,弄个IF来判断就可以了 [ Last edited by dikex on 2007-1-8 at 01:51 PM ] |
|
| 第9楼 vkill | 发表于 2007-01-09 02:42 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
qchain.exe
这个文件是??? |
|
| 第10楼 ronin | 发表于 2007-01-12 02:09 |
| 中级用户 发帖 111 积分 421 | |
|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\MSXML4SP2\Q927978
msxml4-KB927978-chs.exe在这里有记录 |
|
| 第11楼 lxmxn | 发表于 2007-01-12 02:26 |
| 版主 发帖 4,938 积分 11,386 | |
|
systeminfo里面貌似也有一点系统补丁的信息。 |
|
| 第12楼 dikex | 发表于 2007-01-12 02:42 |
| 高级用户 发帖 366 积分 788 | |
Originally posted by ronin at 2007-1-11 01:09 PM: 呵呵,查找是输入了KB927978,所以找不到了 另外也比较齐全的是在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates里面,所有的都看到了,不过比较分散,可以先导出再使用find来查找对照,但由于项目太多而比较慢,而使用下面这个可以导出范围比较小的列表 for /f "delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates" /s ^| findstr /i "kb......$ q......$"') do echo %%i >>list.log |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |