楼 主
怎么样在dos批处理中得到最后一个盘的盘符?
发表于 2007-04-13 21:29 · 中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
19年会员
UID 83832
性别 男
状态 离线
我想写一个批处理程序,但需要知道最后一个盘的盘符,请问有什么方法或者工具得到最后一个盘的盘符?(都是fat32文件系统)!
第 2 楼
发表于 2007-04-14 22:08 · 中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
如果是为了得到最后一个盘(包括移动硬盘;光盘等等)可以用
- @echo off
- setlocal enabledelayedexpansion
- wmic logicaldisk get name,DriveType | more +1 >>test.txt
- (for /f "tokens=1,2" %%a in (test.txt) do set t=%%b) && echo !t!
- del test.txt
- pause
BJSH发表于: 2007-04-14 09:03
如果只是为了得到最后一个硬盘
- @echo off
- setlocal enabledelayedexpansion
- wmic logicaldisk get name,DriveType | more +1 >>test.txt
- (for /f "tokens=1,2" %%a in (test.txt) do if "%%a"=="3" set t=%%b) && echo !t!
- del test.txt
- pause
BJSH发表于: 2007-04-14 09:02
[
Last edited by bjsh on 2007-4-14 at 09:13 AM ]
第 3 楼
发表于 2007-04-14 22:19 · 中国 河南 开封 教育网
中级用户
★★
积分 214
发帖 94
注册 2007-01-11 10:39
19年会员
UID 76165
性别 男
状态 离线
为什么不看看人家标题,人家说是DOS批处理...
配合DREAY命令可以循环检测出最后一个可用盘符
第 4 楼
发表于 2007-04-14 22:21 · 中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
第 5 楼
Thanks! 等待ing
发表于 2007-04-15 00:37 · 中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
19年会员
UID 83832
性别 男
状态 离线
如果只是为了得到硬盘的最后一个盘符(不包括光盘和移动硬盘),那该怎么样写批处理啊?
第 6 楼
DREAY怎么用啊
发表于 2007-04-15 00:39 · 中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
19年会员
UID 83832
性别 男
状态 离线
还有3楼大侠,DREAY怎么样用啊,能说的具体点吗?
第 7 楼
发表于 2007-04-15 07:30 · 中国 广东 深圳 福田区 电信
高级用户
★★
积分 525
发帖 222
注册 2006-08-28 21:07
19年会员
UID 61476
状态 离线
Originally posted by wfyinghun at 2007-4-15 00:39:
还有3楼大侠,DREAY怎么样用啊,能说的具体点吗?
dready
加 /w可检测是否可写。
可根据返回值设置为环境变量。
第 8 楼
发表于 2007-04-15 08:49 · 中国 河南 开封 教育网
中级用户
★★
积分 214
发帖 94
注册 2007-01-11 10:39
19年会员
UID 76165
性别 男
状态 离线
配合其他小命令使用,譬如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
具体的实现,相信很容易了,我就不写了
第 9 楼
发表于 2007-04-15 13:51 · 加拿大 Bell
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 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和雨露,谢谢!)

第 10 楼
发表于 2008-04-21 18:56 · 中国 江苏 南通 电信
初级用户
★
积分 30
发帖 15
注册 2008-04-21 18:11
18年会员
UID 116522
性别 男
状态 离线
第 11 楼
发表于 2008-04-23 10:42 · 中国 上海 电信
初级用户
★★
积分 160
发帖 81
注册 2006-07-27 17:52
19年会员
UID 59377
性别 男
状态 离线
DREAY,如drvtypes,这些工具在那里能下载到阿〉?
第 12 楼
原创:
发表于 2008-04-24 05:36 · 中国 广东 东莞 电信
银牌会员
★★★
积分 1,284
发帖 538
注册 2002-11-02 00:00
23年会员
UID 129
性别 男
状态 离线
获得除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
论坛跳转: