![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 15:27 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 该怎样改这段批处理? |
| 可打印版本 1,321 / 8 |
| 第1楼 walu | 发表于 2004-02-13 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
该怎样改这段批处理? 如下: dready C: /w if ERRORLEVEL 2 goto az dready D: /w if ERRORLEVEL 2 goto az dready E: /w if ERRORLEVEL 2 goto az ... dready z: /w if ERRORLEVEL 2 goto az (我的意思是如果返回码是2,则执行“az”,不再dready下面的分区。) 我改成: for %%1 in (d e f g h i j k l m n o p q r s t u v w) do dready %%1: /w if ERRORLEVEL 2 goto az 竟然不行,该如何改呢? |
|
| 第2楼 Kinglion | 发表于 2004-02-14 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
|
您的批处理文件里的 dready 是外部命令吧? 你可以试一试 SHIFT 命令。
:TOP dready %1: /w if ERRORLEVEL 2 goto az SHIFT GO TOP :az REM 此批处理启动参数为: d e f g h i j k l m n o p q r s t u v w x y z 没有具体操作,有什么不妥之处请大家指正。 |
|
| 第3楼 walu | 发表于 2004-02-14 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
如要应用到循环上,怎样改?
|
|
| 第4楼 Kinglion | 发表于 2004-02-14 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
|
您的批处理文件里的 dready 是外部命令吧? 你可以试一试 SHIFT 命令。
修改版 没有实验,不知能否可用,权作交流吧):TOP CALL %0 c d e f g h i j k l m n o p q r s t u v w x y z dready %1: /w if ERRORLEVEL 2 goto az SHIFT GO TOP :az REM 此批处理启动参数为: c d e f g h i j k l m n o p q r s t u v w x y z 没有具体操作,有什么不妥之处请大家指正。 |
|
| 第5楼 walu | 发表于 2004-02-14 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
Kinglion,按你的方法不能用呀,该怎样做?
|
|
| 第6楼 willsort | 发表于 2004-02-16 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re walu:
以下代码根据Kinglion的代码修改,你可以试用一下。另外,你提了许多同类问题,是有什么具体需要吗?学会举一反三应该是最重要的。
|
|
| 第7楼 walu | 发表于 2004-02-16 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
RE willsort:
我在做一些启动盘,所以提了不少批处理问题,每次都得到你热心的帮助,在此一并感谢!我也想能举一反三的学,但因没有一点基础且也没有系统的学,只有一些片断。对一些批处理连意思都理解不了,书店又找到到有关批处理和DOS方面的书籍。请问你有批处理电子书吗?我在网上找过一个《批处理基础与技巧》可惜没找着。其实你就是个批处理的顶级高手,何尝不写本书或写篇详细的学习文章,好让我们学习学习? 象:if == goto sub if == goto end 这两句什么意思呢? |
|
| 第8楼 willsort | 发表于 2004-02-16 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re walu:
关于电子书,曾有一些零零散散的版本,自己写曾一些专题,但因只供私人研究,故未做整理,后来在一次又一次的硬盘报废事故中损失殆尽,故此只能对你的要求表示遗憾。 而批处理的高级研究著作的确很少,他们大多散见于早期的电脑杂志和外文版的DOS教材中,我的经验便是如此积累起来的。 自己出书的想法对我来说过于空幻,如果本站DOS书编者愿意在批处理上多下一些篇幅,我倒可以尽我所能的提供支持。 |
|
| 第9楼 willsort | 发表于 2004-02-16 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re walu:
if == goto sub --------------- 单从字面看,是说调用本程序的第一个命令行参数如果是$sub,则直接转向SUB标签处。 就其一般性而言,这是批处理程序含带各项参数地调用自身时所常用的一种技巧,以此可以跳跃一些不含参数执行时所需要的数据初始化模块。$sub并非是一个特有的关键字,而只是我在调用子程序时的习惯表示法,当然也可以是其他程序执行时用户一般不会使用到的参数字符串。 if == goto end --------------- 单从字面看,是说如果环境变量 predrive 为空时直接转向end标签。 就其所用到的特定场合(就是我写的那个批处理)而言,是指在程序中的sub子程序首次调用时(即带参数 $sub d 调用), predrive 尚没有值,而需要转向 end 处给他赋值(即 d)后,供第二轮调用时(即带参数 $sub e 调用)使用。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |