[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 自己写的批处理 用于安装系统补丁 求教

这个是我想要的样子
已安装补丁名称如下            安装进度24/60
kB**** kb**** kb**** kb**** kb**** kb****      
kB**** kb**** kb**** kb**** kb**** kb****
kB**** kb**** kb**** kb**** kb**** kb****
kB**** kb**** kb**** kb**** kb**** kb****


这个是我目前运行的样子
已安装补丁名称如下            安装进度24/60
kB****

下面是我写的不完整代码  希望被补全
  1. @echo off
  2. title 系统补丁包更新至**年**月**日
  3. MODE con: COLS=50 LINES=22
  4. color 0a
  5. :start0
  6. echo                 ╭─────────────╮        
  7. echo   ╭───┤     系统补丁安装程序             ├───╮
  8. echo   │           ╰─────────────╯          │
  9. echo   │       1.windows-XP-sp2中文版补丁包                 │
  10. echo   │       2.windows-XP-sp2英文版补丁包                 │
  11. echo   │       3.Internet Explorer 6 补丁包                       │
  12. echo   │       4.Internet Explorer 7 补丁包                       │
  13. echo   │       5.      退出本程序                                        │
  14. echo   │       6.退出本程序并重新启动计算机                  │
  15. echo   │                                                                          │
  16. echo   ╰─────────────────────╯
  17. set /p list0=请输入选项:
  18. if "%list0%"=="1" goto list0_1
  19. if "%list0%"=="2" goto list0_2
  20. if "%list0%"=="3" goto list0_3
  21. if "%list0%"=="4" goto list0_4
  22. if "%list0%"=="5" goto list0_5
  23. if "%list0%"=="6" goto list0_6
  24. goto start0
  25. :list0_1
  26. MODE con: COLS=50 LINES=22
  27. echo 即将安装系统补丁,按任意键继续
  28. pause >nul
  29. dir /b xp-sp2-chs\* >0.txt
  30. set sum=0
  31. set n=1
  32. set tmep=replace_bak.tmp
  33. setlocal enabledelayedexpansion
  34. for /f "tokens=1* delims=:" %%i in ('findstr /i /n .* 0.txt') do (
  35.     set str=%%j
  36.     if not "!str!"=="" set "str=!str:.bat=!"
  37.     >>"%tmep%" echo.!str!
  38.     set /a sum=sum+1>nul
  39. )
  40. move "%tmep%" 0.txt
  41. for /f "tokens=1* delims=:" %%m in (0.txt) do (
  42. start /wait .\xp-sp2-chs\%%m.bat
  43. cls
  44. echo    已安装下列补丁                进度: !n! /!sum!
  45. echo %%m
  46. set /a n=n+1
  47. )
  48. del 0.txt
  49. echo 按任意键返回主菜单
  50. pause >nul & goto start0
  51. :list0_2
  52. :list0_3
  53. :list0_4
  54. :list0_5
  55. exit
  56. :list0_6
  57. ::shutdown -r -t now
复制代码

1.请用code将代码括起来
2.%temp%不是%tmep%
3.你写的?有点怀疑哦~
  1. @echo off
  2. title 系统补丁包更新至**年**月**日
  3. MODE con: COLS=50 LINES=22
  4. color 0a
  5. :start0
  6. echo                 ╭─────────────╮        
  7. echo   ╭───┤     系统补丁安装程序             ├───╮
  8. echo   │           ╰─────────────╯          │
  9. echo   │       1.windows-XP-sp2中文版补丁包                 │
  10. echo   │       2.windows-XP-sp2英文版补丁包                 │
  11. echo   │       3.Internet Explorer 6 补丁包                       │
  12. echo   │       4.Internet Explorer 7 补丁包                       │
  13. echo   │       5.      退出本程序                                        │
  14. echo   │       6.退出本程序并重新启动计算机                  │
  15. echo   │                                                                          │
  16. echo   ╰─────────────────────╯
  17. set /p list0=请输入选项:
  18. if "%list0%"=="1" goto list0_1
  19. if "%list0%"=="2" goto list0_2
  20. if "%list0%"=="3" goto list0_3
  21. if "%list0%"=="4" goto list0_4
  22. if "%list0%"=="5" goto list0_5
  23. if "%list0%"=="6" goto list0_6
  24. goto start0
  25. :list0_1
  26. MODE con: COLS=50 LINES=22
  27. echo 即将安装系统补丁,按任意键继续
  28. pause >nul
  29. dir /b xp-sp2-chs\* >0.txt
  30. set sum=0
  31. set n=1
  32. set tmep=replace_bak.tmp
  33. setlocal enabledelayedexpansion
  34. for /f "tokens=1* delims=:" %%i in ('findstr /i /n .* 0.txt') do (
  35.     set str=%%j
  36.     if not "!str!"=="" set "str=!str:.bat=!"
  37.     >>"%temp%" echo.!str!
  38.     set /a sum=sum+1>nul
  39. )
  40. move "%temp%" 0.txt
  41. set "output="
  42. for /f "tokens=1* delims=:" %%m in (0.txt) do (
  43. start /wait .\xp-sp2-chs\%%m.bat
  44. cls
  45. echo    已安装下列补丁                进度: !n! /!sum!
  46. set "output=!output! %%m"
  47. echo!output!
  48. set /a n=n+1
  49. )
  50. del 0.txt
  51. echo 按任意键返回主菜单
  52. pause >nul & goto start0
  53. :list0_2
  54. :list0_3
  55. :list0_4
  56. :list0_5
  57. exit
  58. :list0_6
  59. ::shutdown -r -t now
复制代码

TOP

%tmep%  是指定的变量    并不是系统本身的环境变量
请看完整我的代码  谢谢

TOP

昏..tmep..够恶心..
那你改回来好了,...

TOP

搞临时文件 还不如直接在一个FOR
标签缩成一个吧

TOP

返回列表