![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-17 07:44 |
共 47,813 主题排行 / 349,903 发帖 / 今日 0 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 请教批处理中的递归问题 |
| 可打印版本 928 / 2 |
| 第1楼 smileseeker | 发表于 2005-06-03 00:00 |
| 中级用户 发帖 83 积分 316 | |
|
请教批处理中的递归问题 我用的系统是win2000
现有1.bat和2.bat 1.bat的内容为: del 1.txt set a=10 set b=1 call 2.bat echo end>>1.txt 2.bat的内容为: echo %%%a%%%>>1.txt set /a a=a-1 if %a% GTR 0 call 2.bat echo %%%b%%%>>1.txt set /a b=b+1 执行结果: %10% %9% %8% %7% %6% %5% %4% %3% %2% %1% %1% %2% %3% %4% %5% %6% %7% %8% %9% %10% end 如果将2.bat中的%%%a%%%改为%a%,%%%b%%%改为%b% 结果变成: 10 打开 ECHO。 打开 ECHO。 10 end 黑窗体中: C:\>del 1.txt C:\>set a=10 C:\>set b=1 C:\>call 2.bat C:\>echo 10 1>>1.txt C:\>set /a a=a-1 C:\>if 9 GTR 0 call 2.bat C:\>echo 9>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 8 GTR 0 call 2.bat C:\>echo 8>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 7 GTR 0 call 2.bat C:\>echo 7>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 6 GTR 0 call 2.bat C:\>echo 6>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 5 GTR 0 call 2.bat C:\>echo 5>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 4 GTR 0 call 2.bat C:\>echo 4>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 3 GTR 0 call 2.bat C:\>echo 3>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 2 GTR 0 call 2.bat C:\>echo 2>>1.txt 打开 ECHO。 C:\>set /a a=a-1 C:\>if 1 GTR 0 call 2.bat C:\>echo 1>>1.txt C:\>set /a a=a-1 C:\>if 0 GTR 0 call 2.bat C:\>echo 1>>1.txt C:\>set /a b=b+1 C:\>echo 2>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 3>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 4>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 5>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 6>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 7>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 8>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 9>>1.txt 打开 ECHO。 C:\>set /a b=b+1 C:\>echo 10 1>>1.txt C:\>set /a b=b+1 C:\>echo end 1>>1.txt 不知道哪里错了 请各位大侠帮忙 |
|
| 第2楼 willsort | 发表于 2005-06-03 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re smileseeker:
在NT系列命令行中,重定向符号前加数字,将会表示重定向的设备的句柄,所以只要在%a%、%b%后加一个空格即可。 默认情况下,可以从键盘将命令输入(即 STDIN 句柄)发送到 Cmd.exe,然后由 Cmd.exe 将命令输出(即 STDOUT 句柄)发送到命令提示符窗口。 |
|
| 第3楼 smileseeker | 发表于 2005-06-03 00:00 |
| 中级用户 发帖 83 积分 316 | |
|
高手就是高手看的头晕不过还好,知道在后面加个空格就好了谢谢哈
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |