无忧启动论坛

标题: 带进度条的自动运行系统补丁包程序的批处理[20120416更新] [打印本页]

作者: 2011hnfeng    时间: 2012-4-9 16:48
标题: 带进度条的自动运行系统补丁包程序的批处理[20120416更新]
刚刚完成的“带总进度条的自动运行系统补丁包程序的批处理”,分享出来吧,大侠们别笑话。
功能:自动判断当前系统,并逐个运行当前文件夹里面的系统补丁包程序。
有实际运行和演示模式。

20120416 精简了代码,修正了一些小bug,增强兼容性。去掉了演示模式。
把进度条用线封闭起来(没有重新抓图,请看 6楼的图)

一楼的代码已经更新,是可以用于实际应用的进度条批处理。7楼的代码只是演示。

如果没什么意外,就不再更新了。有兴趣的朋友拿去吧。

对于 Office 2003/2007/2010,请参见 30

重新写了代码,把进度条更精细一些的演示,请看 7楼

  1. @echo off
  2. :: hnfeng 20120416
  3. :: ◆自动运行文件夹里面所有系统补丁程序并显示总进度及正在安装的程序名◆
  4. :: ================================
  5. cd /d "%~dp0"&color 3E&mode con lines=15 &title 补丁包批处理安装程序〔hnfeng〕
  6. ver | find "6.1" > NUL && (set XT=Windows7&set CX=Windows6.1-KB*.msu&set CS=/quiet /norestart&goto TOP)
  7. ver | find "5.1" > NUL && (set XT=WindowsXP&set CX=WindowsXP-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
  8. ver | find "5.0" > NUL && (set XT=Windows2000&set CX=Windows2000-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
  9. ver | find "5.2" > NUL && (set XT=Windows2003&set CX=WindowsServer2003-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
  10. ver | find "6.0" > NUL && (set XT=WindowsVista&set CX=Windows6.0-KB*.msu&set CS=/quiet /norestart&goto TOP)
  11. :: ================================
  12. :TOP
  13. set title=%XT% 补丁包批处理安装程序〔hnfeng〕
  14. title %title%
  15. set work=0&set n=0&set mo=0&set number=0&set hotfix=
  16. if not exist %CX% echo.&echo.&echo 没找到补丁程序,按任意键退出 ...&echo.&echo.&echo    (该批处理应该在系统补丁程序所在文件夹里运行.)&pause>nul&exit
  17. set k=▏&set kn=0
  18. :Kong
  19. if %kn% LSS 33 (set k=%k% &set /a kn=%kn%+1&goto Kong)
  20. for /F %%s in ('dir /b /a-d %CX% ^| find /v /c ""') do set all=%%s
  21. for /F %%i in ('dir /b /a-d /OD %CX%') do (set hotfix=%%i&call :show)
  22. set hotfix=&call :show
  23. goto end

  24. :show
  25. :check
  26. if %number% GTR %mo% set num=%num%█&set /a mo=%mo%+1&set k=%k:~0,-1%&goto check

  27. cls&echo.&echo.
  28. if "%hotfix%"=="" (echo     %title% ) else (echo       正在安装:%hotfix% ...)
  29. echo                                                            进度: %n% / %all%
  30. echo.&echo                                   已经完成 %work% %%%
  31. echo     ┌──────────────────────────────────┐
  32. echo     │%num%%k%│&echo     │%num%%k%│&echo     │%num%%k%│
  33. echo     └──────────────────────────────────┘
  34. echo.
  35. if not "%hotfix%"=="" echo  hnfeng.2012.4
  36. if %work%==100 goto :EOF
  37. ::ping 127.1 -n 2 >nul
  38. %hotfix% %CS%
  39. set /a n=%n%+1
  40. set /a work=(%n%)*100/(%all%)
  41. set /a number=%work%/3
  42. set /a number=%number%+1
  43. goto :EOF

  44. :end
  45. echo       运行完成,请按任意键退出... (建议重新启动系统)
  46. pause>nul&exit
复制代码



因为上面的批处理需要找到与当前系统相对应的补丁程序后才运行,如果你手里暂时没有补丁程序,可以创建一些虚假的补丁程序:

对于Win7, 创建30个文件:
  1. for /L %%i in (10,1,30) do cd.>Windows6.1-KB610%%i.msu
  2. pause
复制代码

对于XP, 创建30个文件:
  1. for /L %%i in (10,1,30) do cd.>WindowsXP-KB510%%i.exe
  2. pause
复制代码


然后把批处理里面的
::ping 127.1 -n 2 >nul
%hotfix% %CS%
改为
ping 127.1 -n 2 >nul
::%hotfix% %CS%


运行就能看到进度条。





[ 本帖最后由 2011hnfeng 于 2012-4-18 18:24 编辑 ]

Updatda-7-1.png (20.14 KB, 下载次数: 417)

安装过程中

安装过程中

Updatda-7-2.png (21.14 KB, 下载次数: 423)

安装结束

安装结束

Updatda-XP.png (6.5 KB, 下载次数: 395)

XP下

XP下

作者: shan    时间: 2012-4-9 20:00
高人啊,很醒目的,很不错的
作者: renchmin    时间: 2012-4-9 22:33
确实是很不错的批处理啊支持了
作者: singel    时间: 2012-4-9 23:24
很不错,支持楼主
作者: xiaoy    时间: 2012-4-10 20:05
真的很不错,收藏了
作者: 2011hnfeng    时间: 2012-4-11 16:39
稍稍加几行,可以把进度条用线封闭起来(仅选了几张截图做的)

貌似没几个人对进度条有兴趣。

[ 本帖最后由 2011hnfeng 于 2012-4-11 16:45 编辑 ]

_Updata2.gif (42.92 KB, 下载次数: 384)

把进度条用线封闭起来的效果

把进度条用线封闭起来的效果

作者: 2011hnfeng    时间: 2012-4-13 14:46
重新写了代码,进度条更精细了。

修改一下就可以用于实际应用中。下面是进度条效果

[ 本帖最后由 2011hnfeng 于 2012-5-7 14:52 编辑 ]

XP_New.gif (15.61 KB, 下载次数: 355)

XP下的进度条

XP下的进度条

Win7_New.gif (23.55 KB, 下载次数: 349)

Win7下的进度条

Win7下的进度条

_Updata_V2.51C_XP.gif (46.4 KB, 下载次数: 374)

完成的升级批处理进度条_XP

完成的升级批处理进度条_XP

_Updata_V2.51C_7.gif (47.62 KB, 下载次数: 382)

完成的升级批处理进度条_Win7

完成的升级批处理进度条_Win7

作者: whsand    时间: 2012-4-13 15:49
不错,不错。good
作者: 527104427    时间: 2012-4-13 20:38
太厉害了```````````
作者: 2010我你928    时间: 2012-4-14 12:12
高手 支持是必须的 呵呵
作者: 微笑嘻嘻    时间: 2012-4-15 10:36
很不错,支持楼主aa
作者: 807979023    时间: 2012-4-15 10:51
很不错,支持楼主
作者: chenshipeng    时间: 2012-4-16 22:16
很久没看到这么好的代码了
作者: freesoft00    时间: 2012-4-16 22:38
看着不错的。不知道一楼的代码是不是最新的
作者: xirch    时间: 2012-4-16 23:08
谢谢楼主分享!!!!!!!
作者: xiaoj1972    时间: 2012-4-16 23:21
这个太好了   谢谢
作者: holucan    时间: 2012-4-16 23:35
嘿嘿,进度条,我是看到这个进来的:P
wow,看了一下,这批处理真的挺炫的,未来使用在补丁包运行时冗长的时间里就不会有无聊的感觉了!

另外,不晓得第一楼批处理有更新否?
good job

[ 本帖最后由 holucan 于 2012-4-16 23:51 编辑 ]
作者: lovecoldrain    时间: 2012-4-17 00:18
这个肯定很强悍啊……看看
作者: 2011hnfeng    时间: 2012-4-17 08:24
原帖由 freesoft00 于 2012-4-16 22:38 发表
看着不错的。不知道一楼的代码是不是最新的


一楼的代码已经更新,是可以用于实际应用的进度条批处理。7楼的代码只是演示。
作者: 2011hnfeng    时间: 2012-4-17 08:24
原帖由 holucan 于 2012-4-16 23:35 发表
嘿嘿,进度条,我是看到这个进来的:P
wow,看了一下,这批处理真的挺炫的,未来使用在补丁包运行时冗长的时间里就不会有无聊的感觉了!

另外,不晓得第一楼批处理有更新否?
good job


一楼的代码已经更新,是可以用于实际应用的进度条批处理。7楼的代码只是演示。
作者: ymmlqm    时间: 2012-4-17 09:19
好久没有下载补丁下来再更新了,看看楼主处理的怎么样?
作者: dpxqs    时间: 2012-4-17 10:20
高手 支持是必须的 呵呵
作者: zhujiangnan    时间: 2012-4-17 10:53
不错,打补丁方便了!
作者: dony2006    时间: 2012-4-17 11:07
支持是必须的 ,打补丁方便了!
作者: huhong    时间: 2012-4-17 21:39
标题: 回复 #7 2011hnfeng 的帖子
看看。。。。。是撒子效果
作者: holucan    时间: 2012-4-18 00:00
原帖由 2011hnfeng 于 2012-4-17 08:24 发表


一楼的代码已经更新,是可以用于实际应用的进度条批处理。7楼的代码只是演示。

呵呵,感谢更新,而且还加上了测试用的批处理 ;)
作者: chenshipeng    时间: 2012-4-18 00:17
再跟贴求一段打Office补丁的进度条代码
作者: ggmm888    时间: 2012-4-18 07:41
看图效果好不好大力支持
作者: 2011hnfeng    时间: 2012-4-18 18:21
原帖由 chenshipeng 于 2012-4-18 00:17 发表
再跟贴求一段打Office补丁的进度条代码


只需把这几行删掉
ver | find "6.1" > NUL && (set XT=Windows7&set CX=Windows6.1-KB*.msu&set CS=/quiet /norestart&goto TOP)
ver | find "5.1" > NUL && (set XT=WindowsXP&set CX=WindowsXP-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
ver | find "5.0" > NUL && (set XT=Windows2000&set CX=Windows2000-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
ver | find "5.2" > NUL && (set XT=Windows2003&set CX=WindowsServer2003-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
ver | find "6.0" > NUL && (set XT=WindowsVista&set CX=Windows6.0-KB*.msu&set CS=/quiet /norestart&goto TOP)

然后在此处增加下面内容:
set XT=Office2007_2010
set CX=*.exe
set CS=/quiet /norestart

如果是 Office2003,就这样:
set XT=Office2003
set CX=*.exe
set CS=/q

因为Office 2003、2007、2010可以同时存在,所以根据不同情况处理吧。
作者: wan6376    时间: 2012-4-18 23:41
很好的批处理,支持楼主
作者: sunsea    时间: 2012-4-19 16:26
呵呵,也来瞅瞅
作者: 2011tail88    时间: 2012-4-19 18:51
虽然很少打补丁,但还是要收藏啊。好东西。
作者: peak8    时间: 2012-4-19 21:37
太厉害了```````````
作者: singel    时间: 2012-4-19 23:21
下载玩玩O(∩_∩)O
作者: qj_tzy    时间: 2012-4-19 23:27
标题: 回复 #1 2011hnfeng 的帖子
想看看楼主新奇的进度条是怎样的
作者: ksafei    时间: 2012-4-20 02:09
呵呵,这个必须支持................
作者: adslceo    时间: 2012-4-20 02:58
支持一下,有时候恢复系统有用。但WIN 7系统补丁除了自动更新外去哪下载呢?
作者: mygamexxx    时间: 2012-4-20 12:11
看一下,纯粹围观。
作者: hsb566    时间: 2012-4-20 22:04
正好要更新补丁,试试看如何。
作者: jh1688    时间: 2012-4-21 20:46
看一下,纯粹围观。……………………
作者: siming0803    时间: 2012-4-22 00:28
看看 谢谢分享!!!!!!
作者: tzj_2    时间: 2012-4-26 17:05
回复看看是什么效果,谢谢楼主分享!
作者: ynkm169    时间: 2012-4-26 20:40
看看效果图,,,,,
作者: 2010dsming    时间: 2012-4-27 23:31
很不错的,收藏备用.
作者: 俊采星驰    时间: 2012-4-27 23:38
批处理做的自动条?看看效果如何
作者: 135956    时间: 2012-4-27 23:40
看看。。。。。。。。。。。。
作者: netbadbug    时间: 2012-4-28 10:54
看看 谢谢提供这么好的代码
作者: 2012YKK    时间: 2012-4-28 12:37
华丽的进度条,来参观欣赏一下,
作者: liweisky    时间: 2012-4-28 13:13
华丽的围观阿。。。。。。
作者: 极速冰封    时间: 2012-4-28 19:37
支持是必须的支持是必须的
作者: 2012jjgsp    时间: 2012-4-29 14:18
真的很不错,收藏了
作者: yongge9999    时间: 2012-4-30 16:43
很好的批处理,特别是Win7的补丁批量安装
作者: 2011cd_lgy    时间: 2012-4-30 20:03
看一下,看一下
作者: zfyczyh    时间: 2012-5-2 01:24
谢谢楼主分享代码.....................
作者: xks1678    时间: 2012-5-2 08:38
试一试了 了了了了了了了
作者: wab325    时间: 2012-5-3 22:09
good 好啊好啊
作者: 2011jingyi336    时间: 2012-5-4 00:56
謝謝分享
能人巧手  給你一個贊~!!!!
作者: fxq    时间: 2012-5-4 08:19
不错,这个收藏了。。
作者: 2011人生如梦    时间: 2012-5-4 19:47
标题: 回复 #1 2011hnfeng 的帖子
高手 支持是必须的 呵呵
作者: snowounce    时间: 2012-5-5 20:09
在找这样的程序,多谢分享。
作者: dwenjun520    时间: 2012-5-6 11:22
我看看学习了,好像很不错的样子的
作者: taiji    时间: 2012-6-3 12:45
标题: 回复 #1 2011hnfeng 的帖子
高人啊,很醒目的,很不错的
作者: 2012yishuihana    时间: 2012-6-3 16:53
批处理打补丁是否又先后之分,哪个先打,哪个后打
作者: notepad    时间: 2012-6-11 14:44
这个有意思,感谢楼主分享!
作者: cheong0hk    时间: 2012-6-12 09:37
支持楼主!!!!!!!!!!!
作者: zxxpt    时间: 2012-6-12 11:41
高手,谢谢共享支持你
作者: xzf680    时间: 2012-6-13 09:51
这个得看看,必须的。
作者: nerdpal    时间: 2012-6-14 06:13
确实很不错的批处理,支持
作者: go123sh    时间: 2012-6-16 03:34
不错,正需要,学习一下
作者: zjl6634    时间: 2012-6-16 07:20
学习学习.........
作者: sbl5158    时间: 2012-6-16 09:45
看一下效果。。。。。。。。。。。
作者: gamerenzz    时间: 2012-6-18 10:52
这个东西好,谢谢了,进来看看,
作者: xujie    时间: 2012-6-19 03:54
真的很不错,收藏了.....
作者: 2011dj131452dj    时间: 2012-6-22 03:04
学习了~~~~~~~
作者: 2011dj131452dj    时间: 2012-6-22 03:46
标题: 回复 #1 2011hnfeng 的帖子
了不起 ~~~~~~

          请问 xcopy命令的进度条怎么写~????

  求代码~~~~~~~~
作者: andy12345    时间: 2012-6-29 02:53
为了得到这个进度条,我只好回复了。
作者: 2011dj131452dj    时间: 2012-7-3 06:28
请问 使用xcopy命令想要进度条效果查看复制的进度 ————应该怎么改代码
作者: xtl4    时间: 2012-7-3 08:58
劳动辛苦、谢谢分享!!!!
作者: 超凡    时间: 2012-7-3 17:39
标题: 支持学习!!!!!!!!!!
顶顶~~~~~~~~~~~
作者: 8696648    时间: 2012-7-3 19:28
学习一下,谢谢楼主,辛苦了。
作者: baosheng00    时间: 2012-7-3 22:29
来看看什么样子,谢谢分享。
作者: 浪子奇奇    时间: 2012-7-6 19:31
很好,牛人
作者: jeremy    时间: 2012-7-6 20:46
本附件跟帖回复才可下载或查看
作者: yinlei110    时间: 2012-7-7 02:06
支持是必须的 呵呵
作者: wchh    时间: 2012-7-9 15:11
感谢你的分享,下一个看看。
作者: 2012xkpc    时间: 2012-7-17 19:58
高手 支持是必须的 呵呵
作者: 2011vip40012414    时间: 2012-7-26 20:56
标题: 回复 #7 2011hnfeng 的帖子
不错 学习 膜拜下
作者: scxiegangxy    时间: 2012-7-27 08:44
lsgvsd,bn sf,n sfn sn s
作者: fenger313    时间: 2012-7-30 04:38
太厉害了```````````
作者: ghost_tears    时间: 2012-8-17 15:44
牛人呀,伸手党飘过,,
作者: 小辉    时间: 2012-8-17 22:11
不错,不错。good
作者: szfhx    时间: 2012-8-18 11:32
谢谢楼主心血与劳作,收下了!
作者: w523w78    时间: 2012-8-18 21:56
不错,很方便一次更新补丁
作者: szfhx    时间: 2012-8-19 06:56
大侠辛苦了,感谢感谢
作者: szfhx    时间: 2012-8-20 10:40
谢谢了,下载体验哈,期待很久很久了
作者: awnuitfk    时间: 2012-8-21 07:54
为了看到效果!!不得不回呀!!!
作者: Pale_Cheung    时间: 2012-8-21 12:47
batch 搞这么花哨做什么
作者: jkyunpan    时间: 2012-8-26 02:40
进来分享了,多谢了。
作者: chasedream    时间: 2012-8-27 12:18
我看看是不是我想要的
作者: 2011椰风海韵    时间: 2012-8-28 16:35
楼主。这个批处理怎么不识别IE8的补丁和MP11的补丁啊
WindowsXP-WindowsMedia-KB954155-x86-CHS.exe
IE8-WindowsXP-KB2699988-x86-CHS.exe
=====================================================================================
ver | find "5.1" > NUL && (set XT=WindowsXP&set CX=IE8-WindowsXP-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
ver | find "5.1" > NUL && (set XT=WindowsXP&set CX=WindowsXP-WindowsMedia-KB*.exe&set CS=/quiet /norestart /nobackup&goto TOP)
=====================================================================================
我这样添加了也不识别啊。只识别WindowsXP-KB951748-x86-CHS.exe 这类的啊。应该怎么改呢。

还有这个批处理在别的批处理窗口中怎么调用它呢。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3