![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-06 07:20 |
共 47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS启动盘 & LOGO技术 (启动盘室) » 关于dos启动盘中setramd.bat命令行的理解 |
| 可打印版本 3,210 / 5 |
| 第1楼 booyer | 发表于 2006-12-06 13:22 |
| 新手上路 发帖 2 积分 5 | |
|
关于dos启动盘中setramd.bat命令行的理解 关于setramd.bat命令行的理解。不对之处,请大师指正!
@echo off a:\findramd ::运行a盘中的findramd寻找虚拟盘。 if errorlevel 255 goto no_ramdrive ::如果执行findramd后,返回值是255,说明不存在虚拟盘,执行no_ramdrive显示虚拟盘不存在的信息。 if not errorlevel 3 goto no_ramdrive ::如果执行findramd后,返回值不是3(返回值为3时存在虚拟盘),说 明不存在虚拟盘,执行no_ramdrive显示虚拟盘不存在的信息。 goto do_shift ::如果以上两种情况不成立(表明有虚拟盘存在),则执行do_shift开始设置虚拟盘盘符。 :loop ::确定虚拟盘盘符。 if errorlevel %1 goto no_shift ::因为shift执行后,返回值是参数%1代表的值。如果参数%1代表的值能作为返回值返回,表明参数%1不为空,则执行no_shift给虚拟盘分配盘符。 :do_shift ::开始设置虚拟盘盘符。 set cdrom=%2 ::设置字符串cdrom(光驱盘符。由mscdex /L:%cdrom%决定)对应参数%2。请注意:此时光驱分配到的盘符是由硬件决定的,还没有包括由ramdrive建立起来的虚拟盘。因为系统默认的盘符分配是:软驱(a)、软驱(b)、硬盘、光驱,所以,如果硬盘只有一个分区则硬盘(c)、光驱(d),如果硬盘有多个分区则光驱盘符顺推,如果没有硬盘则光驱(c)。当有虚拟盘时,虚拟盘被安排在硬盘和光驱之间,因此光驱盘符会向后退一位。 shift ::参数左移一位(即让参数%1和参数%2对应的盘符向前移一位)。 shift ::参数左移一位(即让参数%1和参数%2对应的盘符再向前移一位)。 if not %1*==* goto loop ::两次左移后,如果参数%1仍然不为空(即%1*==*不成立),说明虚拟盘存在,则执行loop确定虚拟盘盘符。 goto no_ramdrive ::两次左移后,如果参数%1为空(即%1*==*成立),说明虚拟盘不存在,则执行no_ramdrive显示虚拟盘不存在的信息。 :no_shift ::给虚拟盘分配盘符。 set ramd=%2 ::让虚拟盘盘符取参数%2对应的盘符(也就是没有建立虚拟盘前光驱取得的盘符)。 goto success ::执行success显示虚拟盘建立成功的信息。 :no_ramdrive ::没有或无法建立虚拟盘(可以设置一些提示信息) :success ::显示虚拟盘建立成功的信息 |
|
| 第2楼 bc12060101 | 发表于 2006-12-06 21:47 |
| 银牌会员 发帖 712 积分 1,455 | |
|
谢谢楼主!
有些未曾明白的问题,经楼主这么一解释,就搞明白了。 在此感谢! |
|
| 第3楼 jzzyl | 发表于 2007-01-16 09:52 |
| 初级用户 发帖 38 积分 90 | |
|
谢谢楼主,又长知识了,赫赫 希望有时间再来点儿
|
|
| 第4楼 dongam | 发表于 2007-01-18 10:27 |
| 初级用户 发帖 31 积分 70 | |
|
科普知识讲座啊~俺喜欢!
|
|
| 第5楼 888168 | 发表于 2007-01-21 08:21 |
| 新手上路 发帖 9 积分 18 | |
|
谢谢!
|
|
| 第6楼 tnt844 | 发表于 2010-02-21 22:00 |
| 初级用户 发帖 21 积分 41 | |
|
搜索老贴的好处,恩,谢谢楼主的分享。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |