标题: [求助] 帮忙分析一段批处理
[打印本页]
作者: wwmy1982
时间: 2008-5-9 14:00
标题: [求助] 帮忙分析一段批处理
不断显示数字1
到99的问题示例
@echo off
if not "%2"=="" goto _subru
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %%i
goto _out
:_subru
set x_=%1%2
if "%x_%"=="00" goto _out
echo %x_%
:_out
哪位达人分析下程序运行过程
不理解由数字09变成10时,%1的微妙变化 以及19变成20时..%1的微妙变化,请解释程序的运行机理.
从000循环到255
@echo off
if "%exit_%"=="yes" goto _out
if not "%3"=="" goto _subru
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %2 %%i
goto _out
:_subru
set x_=%1%2%3
echo %x_%
if "%x_%"=="255" set exit_=yes
:_out
%1%2的微妙变化
Last edited by wwmy1982 on 2008-5-11 at 11:23 AM ]
作者: slore
时间: 2008-5-9 15:04
@echo off
for %%i in (0 1 2 3 4 5 6 7 8 9) do echo %0 %1 %%i
pause>nul
作者: moniuming
时间: 2008-5-9 15:17
一点一点看,一点一点分析
::@echo off
if not "%2"=="" goto _subru
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %%i
goto _out
:_subru
set x_=%1%2
if "%x_%"=="00" goto _out
echo %x_%
:_out
pause
作者: wwmy1982
时间: 2008-5-9 15:21
re slore:
谢谢,有点明白了....
作者: 26933062
时间: 2008-5-9 18:20
不得不佩服写这段代码的人,空间想像能力太强了。。
看了半天,把我绕晕了。。
作者: bat-zw
时间: 2008-5-9 18:27
标题: 晕:
请求助时不要直呼其名啊,这里高手多的是,热心的人也多的是,相信只要你是真心请教的,知道的人都会热情地帮助你的,呵呵。
ps:这两段代码我实在看不出什么特别的地方,也就是把批处理自身%0当作了一个参数而已。
Last edited by zw19750516 on 2008-5-9 at 06:48 PM ]
作者: slore
时间: 2008-5-9 18:51
还是有特别之处的呵呵……
有点递归的感觉
作者: moniuming
时间: 2008-5-9 18:57
我发现就第一个代码好像最多时竟同时运行了3个批喔,对写出此代码的牛人只能望其项背了.
作者: wwmy1982
时间: 2008-5-11 11:01
此段批处理来自于前任版主willsort 的一篇文章:标题为
[推荐][DOS]Assorted MS-DOS Batch Tricks(现征求译文)
有兴趣的朋友可以搜索一下.