Board logo

标题: 请教批处理中的递归问题 [打印本页]

作者: smileseeker     时间: 2005-6-3 00:00    标题: 请教批处理中的递归问题

我用的系统是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 不知道哪里错了 请各位大侠帮忙

作者: willsort     时间: 2005-6-3 00:00
Re smileseeker:   在NT系列命令行中,重定向符号前加数字,将会表示重定向的设备的句柄,所以只要在%a%、%b%后加一个空格即可。
默认情况下,可以从键盘将命令输入(即 STDIN 句柄)发送到 Cmd.exe,然后由 Cmd.exe 将命令输出(即 STDOUT 句柄)发送到命令提示符窗口。 下表将列出可用的句柄。 句柄 句柄的数字代号 说明 STDIN 0 键盘输入 STDOUT 1 输出到命令提示符窗口 STDERR 2 错误输出到命令提示符窗口 UNDEFINED 3-9 这些句柄由应用程序和各个具体工具单独定义 数字 0 到 9 代表前 10 个句柄。可以使用命令 Cmd.exe 运行程序并将前 10 个句柄中的任何一个重定向到该程序。要指定想使用的句柄,可在重定向操作符前面键入该句柄的数字。如果未定义句柄,则默认的 < 重定向输入操作符是 0,而默认的 > 重定向输出操作符是 1。键入 > 或 < 操作符之后,必须指定要读取或写入数据的位置。可以指定文件名或另一个现有的句柄。

[此贴子已经被作者于2005-6-3 16:59:24编辑过]


作者: smileseeker     时间: 2005-6-3 00:00
高手就是高手看的头晕不过还好,知道在后面加个空格就好了谢谢哈