中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 07:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 哪位能帮忙优化这这批处理,谢谢! 查看 1,005 回复 7
楼 主 哪位能帮忙优化这这批处理,谢谢! 发表于 2006-10-21 09:18 ·  中国 广东 深圳 电信
初级用户
积分 190
发帖 40
注册 2005-03-17 00:00
21年会员
UID 37149
性别 男
状态 离线
代码如下:
@echo off
if "%a%"==""1"" goto 1
if "%a%"==""2"" goto 2
if "%a%"==""3"" goto 3
if "%a%"==""4"" goto 4
if "%a%"==""5"" goto 5
if "%a%"==""6"" goto 6
if "%a%"==""7"" goto 7
直到 .........."500" goto 500
:1



:2

:3


:4

5:
2 发表于 2006-10-21 09:23 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
if "%a%"==""1"" goto 1 你这里多了一对双引号.


@echo off
set a=100
for /l %%i in (0,1,500) do (
if "%%i"=="%a%" goto %%i
)
:1

:2

:3

:500

......


[ Last edited by pengfei on 2006-10-21 at 09:24 ]
3 发表于 2006-10-21 09:43 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线

@echo off
set /p a=输入:
goto :%a%

:1
.
.
.
.

如果输入的标号在下面没有的话脚本会中断.
比较常用的方法是用 call :%a% 参数 || ...
下面的标号部分要在最后加上 goto :eof
4 发表于 2006-10-21 09:48 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
Originally posted by quan_zhou at 2006-10-21 09:18:
代码如下:
@echo off
if "%a%"==""1"" goto 1
if "%a%"==""2"" goto 2
if "%a%"==""3"" goto 3
if " ...


能详细一些说明你要做什么吗?
怎么会有这么多的跳转?

只要 GOTO :%a%
就可以跳转到任何一个由%a%编号的标签处,但它有限制,
这个限制由%a%的内容来决定,
如果%a%是1就跳转到1,如果%a%为2时,就指定跳转到2标签,
那么上面条件成立。

但是,
如果你这么多(好几百个)要跳转的地方到了那个标签处,
如果它们的处理指令又差不多,
那么这时候,还可以优化成极少的指令。

所以,优化要看你的全部要求和你要做什么来决定应用的各种技巧:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
5 发表于 2006-10-21 09:49 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
呵呵~ 中楼主的圈套了, 这么简单的问题还想的那么复杂, 汗...
6 发表于 2006-10-21 22:43 ·  中国 甘肃 张掖 临泽县 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
楼主最好把木的说出来,只是这样的话不好给最好的代码
7 发表于 2006-10-22 13:50 ·  中国 广东 中山 广东瑞江科技有限公司BGP数据中心
中级用户
★★
积分 384
发帖 189
注册 2005-10-19 13:12
20年会员
UID 43709
性别 男
状态 离线
什么脚本啊?竟然有500个标号???狂汗...
8 发表于 2006-10-22 13:55 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  500个标号怎么了?很正常啊,这也是批处理的特点之一,使人手工难以完成或者比较麻烦的问题用批处理轻松完成……
论坛跳转: