无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 116759|回复: 321
打印 上一主题 下一主题

带进度条的自动运行系统补丁包程序的批处理[20120416更新]

    [复制链接]
跳转到指定楼层
#
发表于 2012-4-9 16:48:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
刚刚完成的“带总进度条的自动运行系统补丁包程序的批处理”,分享出来吧,大侠们别笑话。
功能:自动判断当前系统,并逐个运行当前文件夹里面的系统补丁包程序。
有实际运行和演示模式。

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, 下载次数: 511)

安装过程中

安装过程中

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

安装结束

安装结束

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

XP下

XP下

评分

参与人数 2无忧币 +7 收起 理由
yyz2191958 + 2 赞一个!
vrboxing + 5 赞一个!

查看全部评分

320#
发表于 2024-7-22 16:48:36 | 只看该作者
感谢分享
回复

使用道具 举报

319#
发表于 2024-7-22 08:01:50 | 只看该作者
不错,看看.......
回复

使用道具 举报

318#
发表于 2024-7-12 19:15:01 | 只看该作者
谢谢分享!
回复

使用道具 举报

317#
发表于 2024-6-30 19:53:55 | 只看该作者
谢谢。我们会测试一下。
回复

使用道具 举报

316#
发表于 2024-6-30 19:53:28 | 只看该作者
谢谢。我们会测试一下。
回复

使用道具 举报

315#
发表于 2024-6-29 21:26:42 | 只看该作者
2011-mail 发表于 2024-6-29 20:40
看到觉挺有意思的,大家试了能正常运行吗?我拷贝代码生成bat文件,和补丁放在一起,win7sp1环境,运行不行 ...

找到原因了,要以ansi编码保存为bat,不能用utf-8编码保存。
回复

使用道具 举报

314#
发表于 2024-6-29 20:40:34 | 只看该作者
看到觉挺有意思的,大家试了能正常运行吗?我拷贝代码生成bat文件,和补丁放在一起,win7sp1环境,运行不行,1楼的代码运行一闪而过,7楼的代码运行乱码,不断的循环,没有进度条出来。

点评

找到原因了,要以ansi编码保存为bat,不能用utf-8编码保存。  详情 回复 发表于 2024-6-29 21:26
回复

使用道具 举报

313#
发表于 2024-6-29 20:30:07 | 只看该作者
来学习来的
回复

使用道具 举报

312#
发表于 2024-6-27 19:49:08 | 只看该作者
谢谢分享
回复

使用道具 举报

311#
发表于 2024-5-26 16:24:47 | 只看该作者
努力学习
回复

使用道具 举报

310#
发表于 2024-5-17 01:16:51 | 只看该作者
学习一下
回复

使用道具 举报

309#
发表于 2024-5-4 06:50:00 来自手机 | 只看该作者
作品收藏!
回复

使用道具 举报

308#
发表于 2024-4-30 17:15:12 | 只看该作者
有意思,很好
回复

使用道具 举报

307#
发表于 2024-4-30 16:54:55 | 只看该作者
这个写得不错 不知道那种带彩色进度条的是怎么实现的
回复

使用道具 举报

306#
发表于 2024-4-3 03:58:14 | 只看该作者
谢谢分享
回复

使用道具 举报

305#
发表于 2024-4-3 03:58:01 | 只看该作者
谢谢分享
回复

使用道具 举报

304#
发表于 2024-4-2 20:16:32 | 只看该作者
高手啊,学习了,感谢楼主分享
回复

使用道具 举报

303#
发表于 2024-3-30 20:50:49 | 只看该作者
顶,学习下
回复

使用道具 举报

302#
发表于 2024-3-27 13:28:54 | 只看该作者
谢谢分享
回复

使用道具 举报

301#
发表于 2024-3-9 15:32:54 | 只看该作者
感谢分享
回复

使用道具 举报

300#
发表于 2024-3-5 16:10:39 | 只看该作者
RE: 带进度条的自动运行系统补丁包程序的批处理[20120416更新] [修改]
回复

使用道具 举报

299#
发表于 2023-10-13 18:04:26 | 只看该作者
努力向大咖学习
回复

使用道具 举报

298#
发表于 2023-10-13 17:23:59 | 只看该作者
虚拟的,怕不能真实表达安装过程吧!!!
回复

使用道具 举报

297#
发表于 2023-10-10 18:59:33 | 只看该作者
好的!!!!
回复

使用道具 举报

296#
发表于 2023-10-10 14:06:36 | 只看该作者
深受启发,这个确实不错
回复

使用道具 举报

295#
发表于 2023-6-15 15:49:02 | 只看该作者
很不错,学习一下!
回复

使用道具 举报

294#
发表于 2023-6-13 18:01:58 | 只看该作者
带进度条很好
回复

使用道具 举报

293#
发表于 2023-6-13 14:51:55 | 只看该作者
谢谢分享
回复

使用道具 举报

292#
发表于 2023-5-29 08:59:03 来自手机 | 只看该作者
2011hnfeng 发表于 2012-4-13 14:46
重新写了代码,进度条更精细了。

修改一下就可以用于实际应用中。**** 本内容被作者隐藏 ****下面是进度 ...

不错值得借鉴
回复

使用道具 举报

291#
发表于 2023-5-29 08:58:19 来自手机 | 只看该作者
不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-13 15:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表