中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 怎么样在dos批处理中得到最后一个盘的盘符?
作者:
标题: 怎么样在dos批处理中得到最后一个盘的盘符? 上一主题 | 下一主题
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『楼 主』:  怎么样在dos批处理中得到最后一个盘的盘符?

我想写一个批处理程序,但需要知道最后一个盘的盘符,请问有什么方法或者工具得到最后一个盘的盘符?(都是fat32文件系统)!
      


2007-4-13 21:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 2 楼』:  

如果是为了得到最后一个盘(包括移动硬盘;光盘等等)可以用

  Quote:

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. wmic logicaldisk get name,DriveType | more +1 >>test.txt
  4. (for /f "tokens=1,2" %%a in (test.txt) do set t=%%b) && echo !t!
  5. del test.txt
  6. pause
         BJSH发表于:  2007-04-14  09:03

如果只是为了得到最后一个硬盘

  Quote:

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. wmic logicaldisk get name,DriveType | more +1 >>test.txt
  4. (for /f "tokens=1,2" %%a in (test.txt) do if "%%a"=="3" set t=%%b) && echo !t!
  5. del test.txt
  6. pause
         BJSH发表于:  2007-04-14  09:02

[ Last edited by bjsh on 2007-4-14 at 09:13 AM ]

2007-4-14 22:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
llztt1
中级用户





积分 214
发帖 94
注册 2007-1-11
状态 离线
『第 3 楼』:  

为什么不看看人家标题,人家说是DOS批处理...

配合DREAY命令可以循环检测出最后一个可用盘符

2007-4-14 22:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 4 楼』:  

确实确实;
呵呵

2007-4-14 22:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 5 楼』:  Thanks! 等待ing

如果只是为了得到硬盘的最后一个盘符(不包括光盘和移动硬盘),那该怎么样写批处理啊?

2007-4-15 00:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 6 楼』:  DREAY怎么用啊

还有3楼大侠,DREAY怎么样用啊,能说的具体点吗?

2007-4-15 00:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cchessbd
高级用户





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by wfyinghun at 2007-4-15 00:39:
还有3楼大侠,DREAY怎么样用啊,能说的具体点吗?

dready [drive:]  [/w]

加 /w可检测是否可写。
可根据返回值设置为环境变量。

2007-4-15 07:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
llztt1
中级用户





积分 214
发帖 94
注册 2007-1-11
状态 离线
『第 8 楼』:  

配合其他小命令使用,譬如drvtypes的结果:
A: Removable Drive
B: Removable Drive
C: Fixed Drive
D: Fixed Drive
E: Fixed Drive
F: Fixed Drive
G: Fixed Drive
H: Fixed Drive
I: Fixed Drive
J: Fixed Drive
K: CD/DVD Drive
L: CD/DVD Drive
M: Network Drive
N: Network Drive
O: Network Drive
P: Network Drive
Q: Network Drive
R: Network Drive
S: Network Drive
X: SUBSTed Drive
Z: RAM Drive
批处理可以参考用
drvtypes | find /i  "fixed" | find /i "network" >drv.txt
没试验映射的盘符算什么,要不用排除法更好些??
下面就可以使用STRINGS循环检测drv.txt里的盘符,使用
dready %drv% /w |if errorlevel 2 goto nextone

具体的实现,相信很容易了,我就不写了

2007-4-15 08:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


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

如果是要得到最后一个硬盘的盘符的话,最简单的方法是用BDRV和LMOD工具,如下面这个:

BDRV|LMOD /L* SET DRV=[$1]>LDRV.BAT
LDRV.BAT

BDRV和LMOD可以在MS-DOS 7.1完整版中找到。



Wengier - 新DOS时代

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

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

2007-4-15 13:51
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
cctv8068
初级用户





积分 30
发帖 15
注册 2008-4-21
状态 离线
『第 10 楼』:  

NTFS 盘在 DOS 下无法被识别呢

2008-4-21 18:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jia332
初级用户





积分 160
发帖 81
注册 2006-7-27
状态 离线
『第 11 楼』:  

DREAY,如drvtypes,这些工具在那里能下载到阿〉?

2008-4-23 10:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




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

获得除NTFS格式外的最后盘符
@echo off
set num=26
:check
bdrv|nset lastpart=$%num%
count num -
if "%lastpart%"=="" goto check
echo %lastpart%
pause
:end
附件下载:
http://upload.cn-dos.net/img/325.rar

2008-4-24 05:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: