中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 06:50
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » 哪位能帮忙优化这这批处理,谢谢!
可打印版本  1,003 / 7
第1楼 quan_zhou 发表于 2006-10-21 09:18
初级用户 发帖 40 积分 190
哪位能帮忙优化这这批处理,谢谢!
代码如下:
@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楼 pengfei 发表于 2006-10-21 09:23
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
if "%a%"==""1"" goto 1 你这里多了一对双引号.



[ Last edited by pengfei on 2006-10-21 at 09:24 ]
第3楼 3742668 发表于 2006-10-21 09:43
荣誉版主 发帖 718 积分 2,013

如果输入的标号在下面没有的话脚本会中断.
比较常用的方法是用 call :%a% 参数 || ...
下面的标号部分要在最后加上 goto :eof
第4楼 redtek 发表于 2006-10-21 09:48
金牌会员 发帖 1,147 积分 2,902
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标签,
那么上面条件成立。

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

所以,优化要看你的全部要求和你要做什么来决定应用的各种技巧:)
第5楼 pengfei 发表于 2006-10-21 09:49
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
呵呵~ 中楼主的圈套了, 这么简单的问题还想的那么复杂, 汗...
第6楼 vkill 发表于 2006-10-21 22:43
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
楼主最好把木的说出来,只是这样的话不好给最好的代码
第7楼 voiL 发表于 2006-10-22 13:50
中级用户 发帖 189 积分 384
什么脚本啊?竟然有500个标号???狂汗...
第8楼 lxmxn 发表于 2006-10-22 13:55
版主 发帖 4,938 积分 11,386

  500个标号怎么了?很正常啊,这也是批处理的特点之一,使人手工难以完成或者比较麻烦的问题用批处理轻松完成……
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023