![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 12:12 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]如何让批处理修改自身的计数? |
| 可打印版本 953 / 10 |
| 第1楼 bat-zw | 发表于 2008-03-29 02:02 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
[求助]如何让批处理修改自身的计数? 怎么在运行批处理时将最后一行的数值加1,如最后一行是0,运行一次后变成1,运行两次后变成2。。。。。。。。。运行n次后变成n,也就是如何不调用外部数据下记录本身运行的次数?
[ Last edited by lxmxn on 2008-3-30 at 09:55 AM ] |
|
| 第2楼 bat-zw | 发表于 2008-03-29 02:05 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
我想了个代码,但不能实现: for /f "tokens=*" %%i in (b.bat) do (
set n=%%i ) set /a n+=1 echo run %n% ping /n 4 127.1 >nul for /f "skip=9 tokens=1" %%i in (b.bat) do ( set /a %%i+=1 ) 0 [ Last edited by zw19750516 on 2008-3-29 at 02:47 AM ] |
|
| 第3楼 terse | 发表于 2008-03-29 02:07 |
| 银牌会员 发帖 946 积分 2,404 | |
|
我在你发的 批处理本身运行的次数里 回复的写在第一排的 其实原理是一样
|
|
| 第4楼 bat-zw | 发表于 2008-03-29 02:11 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
请明示啊,急啊,谢谢了!
|
|
| 第5楼 bat-zw | 发表于 2008-03-29 02:15 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
将最后一行用变量替换掉也可以,问题是如何实现?
|
|
| 第6楼 bat-zw | 发表于 2008-03-29 02:22 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
又想了个能实现的,但还有问题: 纪录次数是没问题了,但。。。。
for /f "tokens=*" %%i in (b.bat) do ( set n=%%i ) set /a n+=1 echo run %n% ping /n 4 127.1 >nul echo %n% >>b.bat 0 [ Last edited by zw19750516 on 2008-3-29 at 02:23 AM ] |
|
| 第7楼 bat-zw | 发表于 2008-03-29 03:03 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
解决了主要问题了: 虽然还是会增长批处理本身的行数,但对于限使用程序次数(一般不会超过100次吧),还是足够了,也请高手们出个完善的代码吧!
|
|
| 第8楼 terse | 发表于 2008-03-29 03:27 |
| 银牌会员 发帖 946 积分 2,404 | |
|
不知道对你有用否?
@echo off cd.>_emp for /f "tokens=1,2 delims=:" %%i in ('findstr /n . %0') do set /a n=%%i 2>nul&set t=%%j for /f "delims=" %%i in ('findstr /n .* %0') do ( set /a m=%%i 2>nul set "src=%%i" setlocal enabledelayedexpansion set "src=!src:*:=!" if !n! EQU !m! goto end echo.!src!>>_emp endlocal ) :end set/a t+=1 echo 运行第 %t% 次 >>_emp echo.: %t% move /y "_emp" "%~f0" 2>NUL pause : 0 |
|
| 第9楼 bat-zw | 发表于 2008-03-29 03:33 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
谢谢了,我是要不生成临时文件的,还是非常感谢哈!
|
|
| 第10楼 ThinKing | 发表于 2008-03-29 13:34 |
| 中级用户 发帖 207 积分 471 | |
|
PS一下:以后不要搞这样的标题了,很没水准和道德。
|
|
| 第11楼 261621998 | 发表于 2008-05-08 05:10 |
| 初级用户 发帖 23 积分 32 | |
|
:num
set /a n+=1 ... ... ... pause>nul&echo 你按了%n%次 if %n%==n exit goto num 你看这样行不 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |