![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 21:37 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 怎样设置变量,让文本中的数字自动递增且显示出来? |
| 可打印版本 1,175 / 12 |
| 第1楼 binghejin | 发表于 2006-12-27 10:49 |
| 初级用户 发帖 19 积分 48 | |
|
怎样设置变量,让文本中的数字自动递增且显示出来? 编写了一个这样的批处理
--------------------------------------------------------- @echo off title Windows 2000 XP 系统补丁包安装程序 V1.0 COLOR 1f MODE con: COLS=70 LINES=30 if "%1"=="h" goto help if "%1"=="" goto 1 :1 if not exist WindowsXP-*.* goto er1 if exist list.txt goto ertxt if exist ks.bat goto erbat if exist *.exe goto baohu goto anzhuang :ertxt echo. echo. echo. echo 检测到有非正常退出,正在修复... del list.txt>nul goto 1 :erbat echo. echo. echo. echo 检测到有非正常退出,正在修复... del ks.bat>nul goto 1 :baohu echo. echo. echo. echo 系统补丁程序目前的状态为 易被病毒感染 echo. echo 正在执行保护机制,请稍候... ren *.exe *.ccc>nul if exist *.exe goto baohu goto anzhuang :anzhuang cls echo. echo. echo. echo ======================================= echo Windows 2000 XP 系统补丁包安装程序 V1.0 echo. echo 编写:XX echo. echo 2006年12月26日 echo ======================================= echo. set /p v= 是否继续? if %v%==1 goto st if %v%==0 goto exist echo. echo 输入无效,请重新输入... goto anzhuang :st echo. echo 正在解除补丁包的保护,安装完毕后自动启动保护机制... ren *.ccc *.exe>nul echo. echo 正在创建补丁包列表,请稍候... dir /b *.exe>list.txt echo. echo 创建列表成功,开始安装... echo. echo 开始安装... echo @echo off>ks.bat for /f %%a in (list.txt) do echo %%a/u>>ks.bat call ks.bat echo. echo 安装完毕... echo. echo 正在删除临时文件... del ks.bat>nul del list.txt>nul echo. echo 正在执行保护机制,请稍候... ren *.exe *.ccc>nul goto end :er1 echo. echo 没有发现系统补丁程序,请检查... goto end :help echo ================================================ echo. echo 本程序可以完全自动的安装系统补丁包 echo. echo 本程序只能运行在Windows 2000及XP系统下 echo. echo 您需要做的就是把系统补丁程序放置在本程序的目录下 echo. echo 然后执行setup.bat文件即可 echo. echo 本程序会自动识别安装文件并且自动安装 echo. echo 本程序只有一个执行文件绝对绿色 echo. echo 有任何疑问或建议欢迎和我联系 QQ:82565161 echo. echo ================================================ echo ================================================ echo. echo 如果在安装过程中,系统不断的给出同一个提示 echo. echo 并不是程序的错误,而是程序在运行保护机制而 echo. echo 需要保护的系统补丁程序正在被安装,或者正在 echo. echo 被别的程序使用,您只需要耐心的等到该文件被 echo. echo 释放。 :end echo. pause :exist color cls ---------------------------------------------------------------------------------------------- 目前基本上已经可以用了, 但是想增加这样的功能: 在安装开始的时候,显示"正在安装第 1 个系统补丁..." 然后安装第2个的时候,自动变成"正在安装第 1 个系统补丁..." [ Last edited by namejm on 2006-12-28 at 11:10 AM ] |
|
| 第2楼 NaturalJ0 | 发表于 2006-12-27 22:01 |
| 银牌会员 发帖 533 积分 1,181 | |
|
不断设置 title ?
或者 CLS 一下重新排个版? |
|
| 第3楼 binghejin | 发表于 2006-12-28 00:43 |
| 初级用户 发帖 19 积分 48 | |
|
收到错误的提示了,已经改正!还望高手解答!
|
|
| 第4楼 binghejin | 发表于 2006-12-29 00:07 |
| 初级用户 发帖 19 积分 48 | |
|
难道我的问题写的太模糊了?
那就简单称述一下: 就是我的批处理目的是要运行一个批处理文件所在的目录下的所有补丁程序,方法是使用dir /b 输出一个列表.然后再安装. 但是现在的问题是在安装的时候屏幕上没有相应的提示. 我想达到的目的就是:在安装列表里面的第 1 个补丁的时候,屏幕显示:正在安装第 1 个补丁" 然后安装第 2 个的时候,又显示是在安装第 2 个,以此类推,直到安装完毕! 望高手解答! |
|
| 第5楼 redtek | 发表于 2006-12-29 00:21 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
Title 是设置CMD当前窗口的标题~:) 见 Title /? 帮助信息~:) 大概原理,就是输出到要Call来执行安装补丁包的过程中,再插入一个设置显示窗口标题的命令,这样先显示标题,然后就安装…… 如果不喜欢 Title 显示标题的方式,就 Echo 显示正在安装哪一个补丁,变量取自%%a ~:) 如果希望递增数字: set /a a+=1 Echo %a% 以后每运行一次 set /a a+=1 命令,则 %a% 中的数字就会递增1。 [ Last edited by redtek on 2006-12-28 at 11:28 AM ] |
|
| 第6楼 binghejin | 发表于 2006-12-29 06:15 |
| 初级用户 发帖 19 积分 48 | |
|
好像不能实现我想要的功能啊
我想要的是:在安装第 1 个的时候显示 1 ,而在安装第 2 个的时候显示 2 啊, 我也不是太懂 for 这个命令,麻烦给直接写成代码吧! |
|
| 第7楼 binghejin | 发表于 2006-12-29 06:25 |
| 初级用户 发帖 19 积分 48 | |
|
for /f %%a in (list.txt) do (
set /a a+=1 echo 正在安装第 %a% 个补丁 echo %%a/u>>ks.bat 难道是这样?好像也没有成功啊! |
|
| 第8楼 namejm | 发表于 2006-12-29 06:27 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
| 第9楼 zh159 | 发表于 2006-12-29 06:31 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
改改namejm版主的不用延迟变量,用call也OK
|
|
| 第10楼 binghejin | 发表于 2006-12-29 07:57 |
| 初级用户 发帖 19 积分 48 | |
|
各位老大啊,现在可以倒是可以显示正在安装第几个了,但还不是我要的呀,现在显示的是这样
正在安装第 1 个补丁 正在安装第 2 个补丁 正在安装第 3 个补丁 ......... 全部现实完了后才开始安装。 我要的是在安装第 1 个的时候显示 正在安装第 1 个补丁.. 然后安装,装完了后变成 正在安装第 2 个补丁 然后安装第 2 个。 ................. 能实现么? |
|
| 第11楼 tao0610 | 发表于 2006-12-29 08:15 |
| 高级用户 发帖 218 积分 579 | |
|
加进去就行了.
pause |
|
| 第12楼 zh159 | 发表于 2006-12-29 08:16 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
把文件名放入list.txt
|
|
| 第13楼 binghejin | 发表于 2006-12-29 23:52 |
| 初级用户 发帖 19 积分 48 | |
|
非常感谢大家的帮助,在你们的帮助下,我的问题终于解决了。
代码使用的是11楼的代码! 在这里谢谢所有帮助我的人! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |