![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 00:32 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助] 98 FOR 的 DO 后面要接一条以上的语句应该怎么办 |
| 可打印版本 1,067 / 9 |
| 第1楼 NaturalJ0 | 发表于 2006-08-15 19:11 |
| 银牌会员 发帖 533 积分 1,181 | |
|
[求助] 98 FOR 的 DO 后面要接一条以上的语句应该怎么办 运行环境是98最简启动盘(三文件)加了一个 98 的 FIND.EXE 文件
c:\num.txt 内容为 num=2 1.bat 内容为 @echo off FOR %%i in (1,2,3) do find "num=%%i" c:\num.txt>nul & if errorlevel 0 if not errorlevel 1 set num=%%i echo num=%num% 运行结果是 C:\>1 File not found - &File not found - ifFile not found - errorlevelFile not found 0File not found - ifFile not found - notFile not found - errorlevelFile not fo nd - 1File not found - setInvalid keyword File not found - &File not found - ifFile not found - errorlevelFile not found 0File not found - ifFile not found - notFile not found - errorlevelFile not fo nd - 1File not found - setInvalid keyword File not found - &File not found - ifFile not found - errorlevelFile not found 0File not found - ifFile not found - notFile not found - errorlevelFile not fo nd - 1File not found - setInvalid keyword num= C:\>_ 3.bat 内容为 @echo off find "num=1" c:\num.txt>nul if errorlevel 0 if not errorlevel 1 set num=1 find "num=2" c:\num.txt>nul if errorlevel 0 if not errorlevel 1 set num=2 find "num=3" c:\num.txt>nul if errorlevel 0 if not errorlevel 1 set num=3 echo num=%num% 运行结果是 C:\>3 num=2 C:\>_ 请问像这种情况,FOR 应该怎么写?非常感谢。 [ Last edited by NaturalJ0 on 2006-8-16 at 15:22 ] |
|
| 第2楼 NaturalJ0 | 发表于 2006-08-16 10:14 |
| 银牌会员 发帖 533 积分 1,181 | |
|
难道只能调用另一个 BAT ?有没办法就在这一个 BAT 中解决问题?
|
|
| 第3楼 namejm | 发表于 2006-08-16 10:27 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
看了你的代码,意图似乎是读取num.txt的内容,type c:\num.txt不就成了吗?只是不知道type是不是98的内部命令。
|
|
| 第4楼 NaturalJ0 | 发表于 2006-08-16 10:36 |
| 银牌会员 发帖 533 积分 1,181 | |
|
非常感谢楼上的回复。
我的愿意是要读里面的值给变量,后面的处理中想用变量。 [ Last edited by NaturalJ0 on 2006-8-16 at 10:37 ] |
|
| 第5楼 namejm | 发表于 2006-08-16 11:37 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
| 第6楼 NaturalJ0 | 发表于 2006-08-16 11:42 |
| 银牌会员 发帖 533 积分 1,181 | |
|
98 下的 FOR 没有 /f , DO 后面也不能用 ()
这个 BAT 是在 98 启动盘环境下用,要根据读来的值不同,后面利用变量有不同的操作。还有其它办法么? [ Last edited by NaturalJ0 on 2006-8-16 at 11:44 ] |
|
| 第7楼 namejm | 发表于 2006-08-16 12:35 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
98的限制还真多啊,这也不行,那也不行的。没在98下遍过批处理,没辙了。
|
|
| 第8楼 NaturalJ0 | 发表于 2006-08-16 12:45 |
| 银牌会员 发帖 533 积分 1,181 | |
|
是啊,以前的 DOS 里 FOR 命令功能少啊。
很感谢你花时间回复我。再等等其他人有没办法吧。实在不行,我也只能用 CALL 再去外部掉个 BAT 了,不过这样个人感觉挺不爽的。 = =b |
|
| 第9楼 chenall | 发表于 2006-08-16 15:55 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
不要使用find.
使用其它的程序.例如lmod之类的.可以提取文件内容作为变量的程序. 或者. 将c:\num.txt 内容修改成 set num=2 这样就不用外部命令了. type num.txt>~num.bat call ~num.bat del ~num.bat |
|
| 第10楼 NaturalJ0 | 发表于 2006-08-16 16:14 |
| 银牌会员 发帖 533 积分 1,181 | |
|
楼上好办法,非常感谢。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |