中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » Climbing大大,关于你发表的一篇帖子,请指教!
作者:
标题: Climbing大大,关于你发表的一篇帖子,请指教! 上一主题 | 下一主题
xsc
初级用户




积分 157
发帖 16
注册 2004-9-18
状态 离线
『楼 主』:  Climbing大大,关于你发表的一篇帖子,请指教!

新版本的findcd.exe支持多光驱的,在启动光盘的autoexec.bat中加入这些命令
findcd /s > nul
if "%cdrom%"=="1" set path=%path%;%cdrom1%:\;
if "%cdrom%"=="2" set path=%path%;%cdrom1%:\;%cdrom2%:\;
if "%cdrom%"=="3" set path=%path%;%cdrom1%:\;%cdrom2%:\;%cdrom3%:\;
set cdrom=
for %%I in (%cdrom1%,%cdrom2%,%cdrom3%) DO if exist %%I\光盘上的某目录\某文件 set cdrom=%%I
----------------------------------------
问题来了:
例如我有2个光驱,分别加载到D:和E:
我把光盘插入D:光驱
当执行到"DO if exist %%I\光盘上的某目录\某文件"这一句时,会出现
read failed from drive E:
Abort,Retry,Fail?
(插入到E:,会提示read failed from D
道理很明显,因为if exist这个判断程序会去读取所有的光区.而E:里是空的.
但是没有这个判断就不能自动识别双光区,该如何做才能避免这个错误提示呢?

2004-9-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

兄弟,到无忧论坛看回复吧。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-9-26 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 3 楼』:  

呵呵,那個findcd程序是我編寫的。前面加上dready命令來判斷的話就不會出現什麼Abort, Retry, Fail的錯誤了。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2004-9-26 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
xsc
初级用户




积分 157
发帖 16
注册 2004-9-18
状态 离线
『第 4 楼』:  

该怎么改呢?我实在不知道怎么搞啊。errorlevel的参数也不知道,请Wengier帮忙修改一下好吗?
findcd /s > nul
set bootcd=
for %%I in (%cdrom1%,%cdrom2%) DO dready %%I  IF NOT ERRORLEVEL 1  set bootcd=%%I

[此贴子已经被作者于2004-9-27 2:21:52编辑过]




2004-9-27 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 5 楼』:  

我写的一个类似的批处理,你稍加修改一下应该可以解决问题:xyfpath.bat:用来设置搜索路径:
@echo off
set drives=
for %%D in (C: D: E: F: G: H: I: J: K: L: M: N:  P: Q: R: S: T: U: V: W: X: Y: Z:) DO Call IsReady %%D
::echo %drives%
::pauseset mypath=
for %%D in (%drives%) DO if exist %%D\syssoft\clone\systools\ghost.exe apath *mypath %%D\SYSSOFT\CLONE\SYSTOOLS;%%D\SYSSOFT\CLONE\DOSTOOLS;%%D\SYSSOFT\CLONE\WINTOOLS
if exist c:\ucdos\nul apath c:\ucdos
if exist c:\dos71\nul apath c:\dos71
if exist c:\dos\nul apath c:\dos
if exist c:\batch\nul apath c:\batch
for %%D in (%drives%) DO if exist %%D\systools\pqmagic.exe apath *mypath %%D\SYSTOOLS;%%D\DOSTOOLS;%%D\WINTOOLSif not "%mypath%"=="" apath %mypath%
if "%mypath%"=="" goto _nopath
set drives=
set mypath=
goto _quit:_nopath
echo Sorry! I cannot find any xyf's path on your system.
echo PATH NOT SET!!!
pause:_quit
IsReady.bat:用来判断某个盘符是否准备好:
@echo off
dready %1 > nul
if errorlevel 1 goto _quit
if errorlevel 0 set drives=%1 %drives%

:_quit




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-9-27 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: