中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结][NT]如何在批处理中得到最后的盘符?
作者:
标题: [已结][NT]如何在批处理中得到最后的盘符? 上一主题 | 下一主题
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『楼 主』:  [已结][NT]如何在批处理中得到最后的盘符?

如题!

[ Last edited by willsort on 2006-5-14 at 17:18 ]



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-5-2 09:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 2 楼』:  

什么环境下?
XP环境下可以用for调用logicaldisk get name并连续赋值来得到最后的盘符,而且还可以指定要获得指定类型的盘符,如光驱,移动设备。。
若是DOS环境下面可以考虑用for,或者直接用
d:
e:
.
.
.
z:
就可以到最后的盘符了,不过就是长了点,要写23行,呵呵。
我这没DOS,所以具体代码就不给了。。

2006-5-4 13:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhanganhua998
新手上路





积分 6
发帖 3
注册 2006-5-13
状态 离线
『第 3 楼』:  

我很知道“如何在批处理中得到最后的盘符?”的DOS批处理具体代码,不知那位老师能贴出来一下!在下先谢谢了。

2006-5-13 21:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhanganhua998
新手上路





积分 6
发帖 3
注册 2006-5-13
状态 离线
『第 4 楼』:  

2楼版主,能否写一下?

2006-5-13 21:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

这个估计用得着吧?
@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 ]

2006-5-13 23:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wang6610
银牌会员




积分 1246
发帖 488
注册 2003-11-11
状态 离线
『第 6 楼』:  

@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个盘符........

2006-5-14 08:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 7 楼』:  



  Quote:
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系统当然行,达到要求!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-5-14 11:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by wang6610 at 2006-5-14 08:47:
它只测到我的倒数第2个盘符........

请问你的盘符组成情况是什么?比如哪几个是磁盘,哪几个是光盘,哪几个是U盘,哪几个是虚拟磁盘......没有在各种条件下测试,很想知道是怎么回事.
是两个程序都这样还是第二个是这样?
第二个程序是根据默认设置中每个磁盘分区都存在一个回收站文件夹来判断磁盘分区是否存在,这个方法存在局限性,比如您删除了回收站文件夹,或者您在光盘根目录下正好创建了这个文件夹等等,都会误判.
希望大家都来完善这个程序,脱离第三方软件的束缚.

2006-5-14 13:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 9 楼』:  


@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 磁盘"...

2006-5-14 17:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhanganhua998
新手上路





积分 6
发帖 3
注册 2006-5-13
状态 离线
『第 10 楼』:  

谢谢5楼与6楼的朋友无私答疑,其实我只想得到硬盘的最后盘符,因为这样我就可以用GHOST做一个系统自动备份,不管在那个机子上都让最后一个硬盘盘符作为最后一个系统备份盘。恢复的时候也比较方便,不需要人为的去做选择。同时也感谢楼主提出了这个问题。我是这个论坛的新成员,本人对批处理很感性趣,我觉得“中国DOS联盟论坛”是一个学习DOS技术很好年地方。其实DOS技术是一个很好的东西,它能帮助我们解决很多问题,而且效率比较高。
    我看了中国DOS联盟论坛的一些帖子,深深感觉到有困难大家互相帮助的气氛,我真的很感动,这在其它论坛上是很少看到。希望中国DOS联盟论坛越办越好,越办越大!我是在无忧论坛上看到此站点的,同时也感谢无忧论坛(无忧论坛也是一个好地方)。

2006-5-15 00:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
guyouhua
初级用户





积分 46
发帖 21
注册 2006-5-14
来自 JIANXI
状态 离线
『第 11 楼』:  [NT]如何在批处理中得到最后的盘符

@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格式,可能要找新的办法了!!

2006-5-25 08:23
查看资料  发送邮件  发短消息 网志  OICQ (67751255)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 12 楼』:  

如果是ntfs格式,可以考虑使用gdisk来判断最后一个分区的编号,然后使用ghost的n:m形式写入分区就行了,如果再加上omnifs的配合就更完美了。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-5-25 10:10
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 13 楼』:  

那怎么用GDISK来得到最后一个分区的编号?



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-5-25 10:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: