中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 20:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结][NT]如何在批处理中得到最后的盘符?
楼 主 [已结][NT]如何在批处理中得到最后的盘符? 发表于 2006-05-02 09:10 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
2 发表于 2006-05-04 13:58 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
什么环境下?
XP环境下可以用for调用logicaldisk get name并连续赋值来得到最后的盘符,而且还可以指定要获得指定类型的盘符,如光驱,移动设备。。
若是DOS环境下面可以考虑用for,或者直接用
d:
e:
.
.
.
z:
就可以到最后的盘符了,不过就是长了点,要写23行,呵呵。
我这没DOS,所以具体代码就不给了。。
3 发表于 2006-05-13 21:03 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
新手上路
积分 6
发帖 3
注册 2006-05-13 19:14
UID 55471
状态 离线
我很知道“如何在批处理中得到最后的盘符?”的DOS批处理具体代码,不知那位老师能贴出来一下!在下先谢谢了。
4 发表于 2006-05-13 21:03 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
新手上路
积分 6
发帖 3
注册 2006-05-13 19:14
UID 55471
状态 离线
2楼版主,能否写一下?
5 发表于 2006-05-13 23:30 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
这个估计用得着吧?
@echo off
for %%i in (Z Y X W V U T S R Q P L O N M L K J I H G F E D C ) do (
if exist %%i:\nul echo 最后的盘符为 %%i & pause>nul && goto :eof
)
这个批处理会把光驱的盘符也算进去,如果不计光驱盘符,应该修改为
@echo off
for %%i in (Z Y X W V U T S R Q P L O N M L K J I H G F E D C ) do (
if exist %%i:\recycled\nul echo 最后的磁盘分区盘符为 %%i & pause>nul && goto :eof
if exist %%i:\recycler\nul echo 最后的磁盘分区盘符为 %%i & pause>nul && goto :eof
)

XP环境下测试通过,2K系统估计也能行,2003下没用过,纯DOS下更是没用过:)

[ Last edited by namejm on 2006-5-14 at 00:27 ]
6 发表于 2006-05-14 08:47 ·  中国 山东 菏泽 电信
银牌会员
★★★
积分 1,246
发帖 488
注册 2003-11-11 00:00
UID 12699
性别 男
状态 离线
@echo off
for %%i in (Z Y X W V U T S R Q P L O N M L K J I H G F E D C ) do (
if exist %%i:\nul echo 最后的盘符为 %%i & pause>nul && goto :eof
)
这个批处理会把光驱的盘符也算进去,如果不计光驱盘符,应该修改为
@echo off
for %%i in (Z Y X W V U T S R Q P L O N M L K J I H G F E D C ) do (
if exist %%i:\recycled\nul echo 最后的磁盘分区盘符为 %%i & pause>nul && goto :eof
if exist %%i:\recycler\nul echo 最后的磁盘分区盘符为 %%i & pause>nul && goto :eof
)


它只测到我的倒数第2个盘符........
7 发表于 2006-05-14 11:33 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
Originally posted by namejm at 2006-5-13 23:30:
这个估计用得着吧?
@echo off
for %%i in (Z Y X W V U T S R Q P L O N M L K J I H G F E D C ) do (
if exist %%i:\nul echo 最后的盘符为 %%i & pause>nul && goto :eo ...

2K系统当然行,达到要求!
8 发表于 2006-05-14 13:47 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
Originally posted by wang6610 at 2006-5-14 08:47:
它只测到我的倒数第2个盘符........


请问你的盘符组成情况是什么?比如哪几个是磁盘,哪几个是光盘,哪几个是U盘,哪几个是虚拟磁盘......没有在各种条件下测试,很想知道是怎么回事.
是两个程序都这样还是第二个是这样?
第二个程序是根据默认设置中每个磁盘分区都存在一个回收站文件夹来判断磁盘分区是否存在,这个方法存在局限性,比如您删除了回收站文件夹,或者您在光盘根目录下正好创建了这个文件夹等等,都会误判.
希望大家都来完善这个程序,脱离第三方软件的束缚.
9 发表于 2006-05-14 17:19 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线

@echo off
for /f %%i in ('"wmic logicaldisk where Description="本地固定磁盘" get DeviceID |find /v "DeviceID""') do set mydrv=%%i
echo %mydrv%
pause

XP下运行,2k下无wmic,把"本地固定磁盘"换成其他类型就可以得到其他类型的最后一个盘符,如:"可移动磁盘","CD-ROM 磁盘"...
10 发表于 2006-05-15 00:18 ·  中国 广东 广州 广东金万邦科技投资有限公司(新一代数据中心)IDC机房(BGP)
新手上路
积分 6
发帖 3
注册 2006-05-13 19:14
UID 55471
状态 离线
谢谢5楼与6楼的朋友无私答疑,其实我只想得到硬盘的最后盘符,因为这样我就可以用GHOST做一个系统自动备份,不管在那个机子上都让最后一个硬盘盘符作为最后一个系统备份盘。恢复的时候也比较方便,不需要人为的去做选择。同时也感谢楼主提出了这个问题。我是这个论坛的新成员,本人对批处理很感性趣,我觉得“中国DOS联盟论坛”是一个学习DOS技术很好年地方。其实DOS技术是一个很好的东西,它能帮助我们解决很多问题,而且效率比较高。
我看了中国DOS联盟论坛的一些帖子,深深感觉到有困难大家互相帮助的气氛,我真的很感动,这在其它论坛上是很少看到。希望中国DOS联盟论坛越办越好,越办越大!我是在无忧论坛上看到此站点的,同时也感谢无忧论坛(无忧论坛也是一个好地方)。
11 [NT]如何在批处理中得到最后的盘符 发表于 2006-05-25 08:23 ·  中国 江西 南昌 联通
初级用户
积分 46
发帖 21
注册 2006-05-14 12:54
UID 55512
性别 男
来自 JIANXI
状态 离线
@echo off
for %%i in (Z Y X W V U T S R Q P L O N M L K J I H G F E D C ) do (
if exist %%i:\recycled\nul echo 最后的磁盘分区盘符为 %%i & pause>nul && goto :eof
if exist %%i:\recycler\nul echo 最后的磁盘分区盘符为 %%i & pause>nul && goto :eof
纯DOS下,上面的这种办法是基于分区格式为FAT32的,对于NTFS根本无能为了,
而现有很多用户都用了NTFS格式,可能要找新的办法了!!
12 发表于 2006-05-25 10:10 ·  中国 浙江 杭州 电信
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
UID 1565
性别 男
来自 河北保定
状态 离线
如果是ntfs格式,可以考虑使用gdisk来判断最后一个分区的编号,然后使用ghost的n:m形式写入分区就行了,如果再加上omnifs的配合就更完美了。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
13 发表于 2006-05-25 10:55 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
论坛跳转: