标题: [文件操作] 自己写的批处理 用于安装系统补丁 求教 [打印本页]
作者: qq275757820 时间: 2009-10-2 13:21 标题: 自己写的批处理 用于安装系统补丁 求教
这个是我想要的样子
已安装补丁名称如下 安装进度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****
下面是我写的不完整代码 希望被补全- @echo off
- title 系统补丁包更新至**年**月**日
- MODE con: COLS=50 LINES=22
- color 0a
- :start0
- echo ╭─────────────╮
- echo ╭───┤ 系统补丁安装程序 ├───╮
- echo │ ╰─────────────╯ │
- echo │ 1.windows-XP-sp2中文版补丁包 │
- echo │ 2.windows-XP-sp2英文版补丁包 │
- echo │ 3.Internet Explorer 6 补丁包 │
- echo │ 4.Internet Explorer 7 补丁包 │
- echo │ 5. 退出本程序 │
- echo │ 6.退出本程序并重新启动计算机 │
- echo │ │
- echo ╰─────────────────────╯
- set /p list0=请输入选项:
- if "%list0%"=="1" goto list0_1
- if "%list0%"=="2" goto list0_2
- if "%list0%"=="3" goto list0_3
- if "%list0%"=="4" goto list0_4
- if "%list0%"=="5" goto list0_5
- if "%list0%"=="6" goto list0_6
- goto start0
- :list0_1
- MODE con: COLS=50 LINES=22
- echo 即将安装系统补丁,按任意键继续
- pause >nul
- dir /b xp-sp2-chs\* >0.txt
- set sum=0
- set n=1
- set tmep=replace_bak.tmp
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims=:" %%i in ('findstr /i /n .* 0.txt') do (
- set str=%%j
- if not "!str!"=="" set "str=!str:.bat=!"
- >>"%tmep%" echo.!str!
- set /a sum=sum+1>nul
- )
- move "%tmep%" 0.txt
- for /f "tokens=1* delims=:" %%m in (0.txt) do (
- start /wait .\xp-sp2-chs\%%m.bat
- cls
- echo 已安装下列补丁 进度: !n! /!sum!
- echo %%m
- set /a n=n+1
- )
- del 0.txt
- echo 按任意键返回主菜单
- pause >nul & goto start0
-
- :list0_2
-
-
-
- :list0_3
-
-
- :list0_4
-
-
- :list0_5
- exit
- :list0_6
- ::shutdown -r -t now
复制代码
作者: Seter 时间: 2009-10-2 21:23
1.请用code将代码括起来
2.%temp%不是%tmep%
3.你写的?有点怀疑哦~- @echo off
- title 系统补丁包更新至**年**月**日
- MODE con: COLS=50 LINES=22
- color 0a
- :start0
- echo ╭─────────────╮
- echo ╭───┤ 系统补丁安装程序 ├───╮
- echo │ ╰─────────────╯ │
- echo │ 1.windows-XP-sp2中文版补丁包 │
- echo │ 2.windows-XP-sp2英文版补丁包 │
- echo │ 3.Internet Explorer 6 补丁包 │
- echo │ 4.Internet Explorer 7 补丁包 │
- echo │ 5. 退出本程序 │
- echo │ 6.退出本程序并重新启动计算机 │
- echo │ │
- echo ╰─────────────────────╯
- set /p list0=请输入选项:
- if "%list0%"=="1" goto list0_1
- if "%list0%"=="2" goto list0_2
- if "%list0%"=="3" goto list0_3
- if "%list0%"=="4" goto list0_4
- if "%list0%"=="5" goto list0_5
- if "%list0%"=="6" goto list0_6
- goto start0
- :list0_1
- MODE con: COLS=50 LINES=22
- echo 即将安装系统补丁,按任意键继续
- pause >nul
- dir /b xp-sp2-chs\* >0.txt
- set sum=0
- set n=1
- set tmep=replace_bak.tmp
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims=:" %%i in ('findstr /i /n .* 0.txt') do (
- set str=%%j
- if not "!str!"=="" set "str=!str:.bat=!"
- >>"%temp%" echo.!str!
- set /a sum=sum+1>nul
- )
- move "%temp%" 0.txt
- set "output="
- for /f "tokens=1* delims=:" %%m in (0.txt) do (
- start /wait .\xp-sp2-chs\%%m.bat
- cls
- echo 已安装下列补丁 进度: !n! /!sum!
- set "output=!output! %%m"
- echo!output!
- set /a n=n+1
- )
- del 0.txt
- echo 按任意键返回主菜单
- pause >nul & goto start0
-
- :list0_2
-
-
-
- :list0_3
-
-
- :list0_4
-
-
- :list0_5
- exit
- :list0_6
- ::shutdown -r -t now
复制代码
作者: qq275757820 时间: 2009-10-2 22:37
%tmep% 是指定的变量 并不是系统本身的环境变量
请看完整我的代码 谢谢
作者: Seter 时间: 2009-10-3 10:00
昏..tmep..够恶心..
那你改回来好了,...
作者: terse 时间: 2009-10-4 00:04
搞临时文件 还不如直接在一个FOR
标签缩成一个吧
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |