无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4634|回复: 18
打印 上一主题 下一主题

[已基本解决。真心感谢victor版主和其他老师]全自动判断U盘盘符程序的原理是什么?

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-3 10:56:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请问hytmtet老师:
您的大作《DOS下加载USB2.0驱动再启动PE》我认真地读了好多遍,对您的创意很敬佩,我想制作量产USB-CDROM的启动U盘,至今没有制作成功,对您文中的全自动判断U盘盘符语句loadsys di1000dd.sys|tfind "drive ="|lmod /L* [$!] [-]|lmod set usb=[]>usbdev.bat不能理解,无法在您程序的基础上做出符合我要求的更改,不知您能否分析一下上面的一条语句?如果您肯赐教,我将不胜感激。(一个菜鸟的请求)

[ 本帖最后由 chjtxys 于 2009-3-5 13:55 编辑 ]
19#
发表于 2009-3-6 13:58:58 | 只看该作者
原帖由 victor888 于 2009-3-5 13:22 发表
回楼上,可以的。

要驱动CDROM,需要USBCD.SYS,具体例子看楼上的。
要驱动U盘,需要DI1000DD.SYS或ASPIDISK.SYS,都可以的。


谢谢Victor888版主。

实际上我已经在U盘上试验成功“加载USB2.0后再启动WinPE”,用ASPIDISK.SYS分配盘符后是D盘,只是看到Autoexec.bat中搜索U盘盘符的判断语句是从z,y,x开始,就想这会不会浪费一些时间,想改为从c,d,e开始搜索。现在已经明白了。
回复

使用道具 举报

18#
 楼主| 发表于 2009-3-5 13:54:30 | 只看该作者
感谢victor版主,我的问题可以说基本解决了。完全可以这么说,如果没有victor版主和其他大师的帮助,这个问题还不知道困扰我什么时候?!无忧论坛真是学习的好地方。
回复

使用道具 举报

17#
发表于 2009-3-5 13:22:30 | 只看该作者
回楼上,可以的。

要驱动CDROM,需要USBCD.SYS,具体例子看楼上的。
要驱动U盘,需要DI1000DD.SYS或ASPIDISK.SYS,都可以的。
回复

使用道具 举报

16#
发表于 2009-3-5 12:28:23 | 只看该作者
原帖由 victor888 于 2009-3-5 08:31 发表
这个楼主,太客气了,估计是学生。

我用的批处理没有不是hytmtet的那2个命令,而是用for %a in ( z y x....)循环查找特征文件的方式,对于一个U盘被量产了一个2个HDD/ZIP的话,hytmtet的仅会对最后一个U盘的 ...


请教一下Victor888版主,for %a in (z,y.x......)命令,在搜索时是按照括号内z,y,x的顺序进行搜索吗?是不是也可以改为c,d,e等顺序?
回复

使用道具 举报

15#
 楼主| 发表于 2009-3-5 08:59:40 | 只看该作者
谢谢victor版主,不是我太客气,而是版主的热情和学识让我感动。你完全可以不理会我的提问,可你却非常热心的给我解答,让我学到新的知识,说几句感谢的话难道是客气了吗。我认识只要登录像无忧这样好的论坛来学习知识的人,都要非常客气地对待像版主你这样热心解疑释惑者。
请问di1000dd.sys程序能给什么样的U盘分配盘符?它能给量产的USB-CDROM分区分配盘符吗?在我的U盘批处理程序里执行loadsys di1000.sys语句,没有任何命令执行结果的显示,网上搜索也没有答案,这个问题一直困扰着我,希望你能提供答案。不好意思,总是打扰你,一个菜鸟不懂的方面太多了,要加紧充电呀!
回复

使用道具 举报

14#
发表于 2009-3-5 08:31:09 | 只看该作者
这个楼主,太客气了,估计是学生。

我用的批处理没有不是hytmtet的那2个命令,而是用for %a in ( z y x....)循环查找特征文件的方式,对于一个U盘被量产了一个2个HDD/ZIP的话,hytmtet的仅会对最后一个U盘的盘符定位,也就是如果启动相关文件在第一个U盘上,这样的批处理将不管用。
回复

使用道具 举报

13#
发表于 2009-3-4 21:20:44 | 只看该作者
楼主很谦虚呀!我也想学习加载USB2.0驱动再启动PE的方法,可惜还没有成功!
回复

使用道具 举报

12#
 楼主| 发表于 2009-3-4 16:53:02 | 只看该作者
谢谢jyd大师的及时指点。您的行为让我鼓舞。我将按照您的方法尝试,有结果立即向您报告。
回复

使用道具 举报

11#
发表于 2009-3-4 16:47:03 | 只看该作者
di1000dd.sys是针对移动硬盘U盘。
4楼:
:_usbcd
DEVICE a:\soft\USBASPI.SYS
DEVICE a:\soft\USBCD.SYS /D:USBCD2
a:\soft\shsucdx /D:USBCD2 >NUL
echo The USB CDROM loads in completion.
findcdx /s
goto _ext
代码才是针对你量产的USB-CDROM的。
回复

使用道具 举报

10#
 楼主| 发表于 2009-3-4 16:40:18 | 只看该作者
感谢victor版主,您的热情让我感动,您的博学让我敬佩。您的指点让我对lmod命令有了基本的理解。目前我按hytmtet大师帖子中所讲的方法还没有制作成功加载USB2.0再启动PE的U盘启动盘。对我等菜鸟来说,原因是多方面的。在这里,我能否再请教您一个问题:在批处理中加载loadsys di1000dd.sys命令后,屏幕是否显示命令执行的结果?di1000dd.sys能否给U盘量产后产生的USB-CDROM分配盘符。我制作的U盘运行后,没有显示loadsys di1000dd.sys运行后的结果,使我无法判断此命令的正确与否,也不清楚di1000dd.sys能否给USB-CDROM分配盘符。再次感谢victor版主和yjd大师,期望高手们能给我帮助。
回复

使用道具 举报

9#
发表于 2009-3-4 15:34:27 | 只看该作者
原帖由 victor888 于 2009-3-4 15:32 发表
看那个该死的lmod命令真是烦人。
首先|是DOS下的管道命令,即将前一个命令的结果做为第2个命令的参数来引用。


第一个命令:loadsys di1000dd.sys的屏幕输出结果被第2个tfind(作用基本同WIN下的FIND)来查 ...

看来以后工具箱要考虑omnifs东东了,支持。
回复

使用道具 举报

8#
发表于 2009-3-4 15:32:30 | 只看该作者
看那个该死的lmod命令真是烦人。
首先|是DOS下的管道命令,即将前一个命令的结果做为第2个命令的参数来引用。
loadsys di1000dd.sys|tfind "drive ="|lmod /L* [$!] [-]|lmod set usb=[]>usbdev.bat


第一个命令:loadsys di1000dd.sys的屏幕输出结果被第2个tfind(作用基本同WIN下的FIND)来查找,找到含"drve="这样的行,注意等号后面的是U盘的盘符,找到这些行后,用lmod命令将所有行的最后一个单词,也就是U盘盘符写入最后一个lmod命令,最后的lmod命令形成usbdev.bat文件,里面的内容是set usb=U:,这样,我们就获得了U盘盘符变量。

其实,这个加载USBCDSYS.SYS,兼容性没有用omnifs的FORCEUSB参数来识别U盘好,它可以直接识别U盘卷标来读取U盘上的文件从而进行复制等操作。
回复

使用道具 举报

7#
 楼主| 发表于 2009-3-4 10:59:03 | 只看该作者
谢谢楼上的指教,对自动判断U盘盘符的程序这几天一直在不断地学习,加上楼上的指点,目前只知晓大概含义,还不能达不到针对我的需要来进行修改,希望大师们继续关心我等菜鸟。谢谢!!!
回复

使用道具 举报

6#
发表于 2009-3-4 10:24:38 | 只看该作者
互相学习。我也不懂lmod命令只是见过这个的应用给你提下,你可以到处找找资料看看他的使用。

loadsys di1000dd.sys|tfind "drive ="|lmod /L* [$!] [-]|lmod set usb=[]>usbdev.bat

我的理解:
加载di××××。sys驱动自动搜索USB接口设备并给出盘符带一大串信息。
后面的tfind搜索前面命令的信息带drive=的。
再把tfind的搜索结果给lmod进行分割处理。然后设set usb=[]设置变量吧再用>重定向保存到usbdev.bat
这里的lmod我从来没用,他的那些参数我就不了解了。还没学习-_-!!

-------------------------------
二是我想把U盘量产的USB-CDROM分区作为启动分区,这样就存在光驱盘符了,di1000dd.sys是否就不能分配光驱盘符,这种情况下,上面那条语句怎样改变。


4楼给的代码是针对你说的光驱盘符怎么办问题。
3种不同光驱的加载和搜索盘符。代码是maxdos原版里的。
回复

使用道具 举报

5#
 楼主| 发表于 2009-3-4 09:56:10 | 只看该作者
还是恳请各位大师解释一下上面的程序或提供解决我提到的问题的思路。
回复

使用道具 举报

4#
发表于 2009-3-4 09:27:00 | 只看该作者
lmod命令到是可以去找找资料学习下,记得看maxdos工具网卡自动判断加载部分也用到了。
贴段代码看了应该能明白:
-----------------------------------------------------------------------
:_idecd
DEVICE a:\soft\vide-cdd.sys /D:IDECD1
a:\soft\shsucdx /D:IDECD1 >NUL
echo The IDE CDROM loads in completion.
findcdx /s
goto _ext

:_usbcd
DEVICE a:\soft\USBASPI.SYS
DEVICE a:\soft\USBCD.SYS /D:USBCD2
a:\soft\shsucdx /D:USBCD2 >NUL
echo The USB CDROM loads in completion.
findcdx /s
goto _ext

:_satacd
DEVICE a:\soft\GCDROM.SYS /D:SATACD1
a:\soft\shsucdx /D:SATACD1>NUL
echo The SATA CDROM loads in completion.
findcdx /s
goto _ext

:_ext
回复

使用道具 举报

3#
 楼主| 发表于 2009-3-4 08:19:43 | 只看该作者
非常感谢victor888版主的关心,您的关心就是对一个菜鸟的最大激励。
我有二个疑问:一是对那条语句不能理解。二是我想把U盘量产的USB-CDROM分区作为启动分区,这样就存在光驱盘符了,di1000dd.sys是否就不能分配光驱盘符,这种情况下,上面那条语句怎样改变。
请victor888版主继续关心和赐教!!!
回复

使用道具 举报

2#
发表于 2009-3-3 21:30:14 | 只看该作者
楼上想要改成什么样?
hytmtet用了2个命令来定位U盘盘符。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-3 04:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表