中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [详解] 纯DOS下巧获硬盘的最后盘符
作者:
标题: [详解] 纯DOS下巧获硬盘的最后盘符 上一主题 | 下一主题
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『楼 主』:  [详解] 纯DOS下巧获硬盘的最后盘符

本人健忘,所以有此发表,一来方便别人,二来自己作笔记。

所需工具:
http://upload.cn-dos.net/img/1715.rar

包含文件:
COUNT.COM
COUNT.TXT
HDRIVE.EXE
NSET.COM
NSET.TXT

特点:不生成(第三方)[垃圾] 文件

完整例子:
SET NUM=25
:CHECK
COUNT.COM NUM -
HDRIVE.EXE|NSET.COM LASTPART=$%NUM%
IF "%LASTPART%"=="" GOTO CHECK
HDRIVE.EXE 是获取可识别的硬盘盘符,当硬盘的分区格式为非FAT32时就不能识别了,例如,现有硬盘的分区如下:
C:FAT32
D:FAT32
E:NTFS
F:FAT32
运行:C:\>HDRIVE.EXE 回车 后 返回:
C:
D:
E:
原 E:不能被识别,所以由 F:顶替,即这里的 E:是 Windows 下的 F:盘。

NSET.COM 的作用是将传送过来的参数定义为自我识别的 $?,并可定义变量。
例如:HDRIVE.EXE|NSET.COM LASTPART=$%NUM%
HDRIVE.EXE 将 C:D:E:的参数传送给 NSET.COM,即代表:
C:  D:  E:
$1    $2    $3
LASTPART=$%NUM%
当 NUM 的值为 4 时,即LASTPART=空 (空代表如果存在此变量即删除此变量)
当 NUM 的值为 3 时,即LASTPART=E:

为什么要定义 NUM=25 ?循环的内容中先减1(经523066680提醒改进)

因为硬盘盘符是由 C:起计算的,24 就代表 Z:盘符了。

COUNT.COM 的作用是将数字变量的值进行运算
COUNT.COM NUM - 代表将变量的值减 1

IF "%LASTPART%"=="" GOTO CHECK
当变量 LASTPART 的值为空时,即还未到最后盘符的数字,循环,直至 NUM 的值是 3 时将 $3 代表的值 E:赋值给变量 LASTPART,这时 LASTPART 非空了,结束循环。

[ Last edited by chishingchan on 2009-10-19 at 12:55 ]

2009-10-12 15:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 2 楼』:  

hi ~ 2009第一次见到你发帖呢。
还记得我吗~

http://www.cn-dos.net/forum/viewthread.php?tid=39780

你说的那句话好鼓励我的^_^
-----------------------------------------


对了,你说是由C开始计算的,那么Z不应该是26了哦。

[ Last edited by 523066680 on 2009-10-12 at 17:59 ]



综合型编程论坛

我的作品索引
  
2009-10-12 17:54
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by 523066680 at 2009-10-12 05:54 PM:
对了,你说是由C开始计算的,那么Z不应该是26了哦。...

对!谢谢提醒!这个低级的错误竟然发生在我的身上。哈哈!

没办法!项目多着呢!现在爱好的是VBS,DOS 现在需要用才会去研究,因此就会健忘,所以才发表这篇错文!

2009-10-12 22:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
33445566
初级用户





积分 29
发帖 16
注册 2007-9-20
状态 离线
『第 4 楼』:  

再加个获纯DOS下最后的硬盘盘符的批处理更好

2009-10-13 20:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: