中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 15:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]  帮忙分析一段批处理 查看 796 回复 8
楼 主 [求助]  帮忙分析一段批处理 发表于 2008-05-09 14:00 ·  中国 山西 移动
初级用户
积分 29
发帖 11
注册 2006-10-22 08:56
19年会员
UID 67675
性别 男
状态 离线
不断显示数字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 ]
2 发表于 2008-05-09 15:04 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
for %%i in (0 1 2 3 4 5 6 7 8 9) do echo %0 %1 %%i
pause>nul
3 发表于 2008-05-09 15:17 ·  中国 上海 电信
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
一点一点看,一点一点分析
::@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
4 发表于 2008-05-09 15:21 ·  中国 山西 移动
初级用户
积分 29
发帖 11
注册 2006-10-22 08:56
19年会员
UID 67675
性别 男
状态 离线
re slore:


谢谢,有点明白了....
5 发表于 2008-05-09 18:20 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
不得不佩服写这段代码的人,空间想像能力太强了。。
看了半天,把我绕晕了。。
致精致简!
6 晕: 发表于 2008-05-09 18:27 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
请求助时不要直呼其名啊,这里高手多的是,热心的人也多的是,相信只要你是真心请教的,知道的人都会热情地帮助你的,呵呵。
ps:这两段代码我实在看不出什么特别的地方,也就是把批处理自身%0当作了一个参数而已。

[ Last edited by zw19750516 on 2008-5-9 at 06:48 PM ]
批处理之家新域名:www.bathome.net
7 发表于 2008-05-09 18:51 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
还是有特别之处的呵呵……

有点递归的感觉
8 发表于 2008-05-09 18:57 ·  中国 上海 电信
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
我发现就第一个代码好像最多时竟同时运行了3个批喔,对写出此代码的牛人只能望其项背了.
9 发表于 2008-05-11 11:01 ·  中国 山西 移动
初级用户
积分 29
发帖 11
注册 2006-10-22 08:56
19年会员
UID 67675
性别 男
状态 离线
此段批处理来自于前任版主willsort 的一篇文章:标题为

[推荐][DOS]Assorted MS-DOS Batch Tricks(现征求译文)
有兴趣的朋友可以搜索一下.
论坛跳转: