![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-13 22:38 |
共 47,812 主题排行 / 349,916 发帖 / 今日 0 篇 / 48,268 会员排行 |
| 论坛回收站 » 请高手帮忙,改写一个批处理 |
| 可打印版本 2,035 / 5 |
| 第1楼 kaixin1228 | 发表于 2009-09-15 04:48 |
| 新手上路 发帖 6 积分 10 | |
|
请高手帮忙,改写一个批处理 我想写一个批处理文件,需求如下:
1、文件test.txt中的值为0或1; 2、如果读取的值是0,调用a.exe,如果读取的值是1则调用b.exe 这是我写的批处理: FOR /F %%a in(test.txt) do if %%a == 0 (call a.exe) else call b.exe 在DOS6.22下执行,报语法错误,请高手帮忙改写,谢谢了! [ Last edited by kaixin1228 on 2009-9-15 at 22:50 ] |
|
| 第2楼 Hanyeguxing | 发表于 2009-09-15 05:08 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
批处理读取的返回代码只能是%ERRORLEVEL%
1,echo;%%a看一下究竟返回的是什么 2,上传你的test.exe 3,if不需要写那么复杂,如果%%a 只存在0或1的可能,则可以直接写成 if %%a equ 0 (call a.exe) else call b.exe 或 if %%a equ 1 (call b.exe) else call a.exe |
|
| 第3楼 kaixin1228 | 发表于 2009-09-15 05:49 |
| 新手上路 发帖 6 积分 10 | |
|
test.exe test.exe的源码如下:
unsigned char main(void) { unsigned char value=0; value=inport(0x1e8); return value; } 刚才试了一下返回值: for /f %%a in(test.exe) do echo %%a 报语法错误 [ Last edited by kaixin1228 on 2009-9-15 at 05:56 ] |
|
| 第4楼 Hanyeguxing | 发表于 2009-09-15 06:05 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
你可以这样试一下看:
测试成功以后再改成: [ Last edited by Hanyeguxing on 2009-9-15 at 06:07 ] |
|
| 第5楼 kaixin1228 | 发表于 2009-09-15 06:14 |
| 新手上路 发帖 6 积分 10 | |
|
报Syntax error
|
|
| 第6楼 904055262 | 发表于 2009-09-15 06:40 |
| 新手上路 发帖 10 积分 13 | |
|
CMD应该不会返回外部程序的%errorleve%吧
除非那个程序会返回errorlevel给CMD 比如 7Z的命令行 正确解压后就返回 0给 CMD 呵呵乱说的 我不太清楚的。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |