中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:盘符错乱的情况下,怎样在最后一个分区建立文件夹?
作者:
标题: 请教:盘符错乱的情况下,怎样在最后一个分区建立文件夹? 上一主题 | 下一主题
wghxx
初级用户





积分 85
发帖 42
注册 2007-11-14
状态 离线
『楼 主』:  请教:盘符错乱的情况下,怎样在最后一个分区建立文件夹?

xp中怎样用批处理寻找最后一个分区(考虑到盘符错乱的情况),并建立名为WGH的文件夹?谢谢!
补充:我说的最后一个分区是指磁盘管理器中的最后一个分区,其盘符不一定是所有盘符中的最后一个字母.

2009-5-29 12:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wghxx
初级用户





积分 85
发帖 42
注册 2007-11-14
状态 离线
『第 2 楼』:  

我试过这个,但在盘符错乱的情况下不行.这是按盘符的字母顺序在显示.
@echo off
for /f %%a in ('"wmic logicaldisk where DriveType="3" get DeviceID |find /v "DeviceID""') do set lastdrive=%%a
echo CMD 下最后分区盘符是 %lastdrive%
md "%lastdrive%\我是文件夹"
没人知道吗?

2009-5-30 06:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang
初级用户





积分 169
发帖 32
注册 2002-10-20
状态 离线
『第 3 楼』:  

找一个命令行磁盘管理工具,从所得参数确定最后分区对应的盘符。
此类工具很多。一般的一键恢复类工具中都有类似功能。



GGhost一键恢复
http://gghost.uueasy.com
2009-5-30 06:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang
初级用户





积分 169
发帖 32
注册 2002-10-20
状态 离线
『第 4 楼』:  

个头大的有gdisk32,小的有dsptw等。
假如是用于ghost的备份,也可直接使用ghost32获取。



GGhost一键恢复
http://gghost.uueasy.com
2009-5-30 06:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wghxx
初级用户





积分 85
发帖 42
注册 2007-11-14
状态 离线
『第 5 楼』:  

我是新手,还是不明白怎么做,不过要说明的是,我是想把它做成一个批处理,或把它加到我做的批处理里面.
是用于ghost的备份,因为在DOS下不知道怎么建,比较麻烦.想在XP下批处理一步到位,
有个办法到是可以,批处理可以做到:先每个盘中建文件夹,GHOST后,再删除,但不是一步到位

2009-5-30 07:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
newxso
初级用户

l i u s s


积分 73
发帖 101
注册 2008-9-17
来自 GZ
状态 离线
『第 6 楼』:  批处理准确获取硬盘最后分区盘符(不论盘符有否错乱)

以下批处理在盘符错乱的情况下,也能准确获取第1硬盘中最后一个分区的盘符,若想获取第2硬盘最后分区盘符,把 disk=0 改成 disk=1 即可。

@echo off
(echo select disk=0
echo list partition)>script.txt
for /f "tokens=2" %%a in ('diskpart /s script.txt') do set n=%%a

(echo select disk=0
echo select partition %n%
echo detail partition
echo exit)>script.txt
for /f "tokens=4" %%a in ('diskpart /s script.txt') do set last=%%a
del script.txt
set/a partn=%n%-1
echo 第1硬盘分区数为:%partn% ,最后一个分区盘符为:%last%
md %last%:\WGH
pause


(回答楼下:增加一句检测硬盘数即可)

获取最后一块硬盘中的最后分区盘符:
@echo off
for /f "tokens=2" %%i in ('echo list disk^|diskpart') do set hd=%%i

(echo select disk=%hd%
echo list partition)>script.txt
for /f "tokens=2" %%a in ('diskpart /s script.txt') do set n=%%a

(echo select disk=%hd%
echo select partition %n%
echo detail partition
echo exit)>script.txt
for /f "tokens=4" %%a in ('diskpart /s script.txt') do set last=%%a
del script.txt
set/a hdd=%hd%+1
set/a partn=%n%-1
echo 你的机器中存在硬盘数为:%hdd%
echo 最后一块硬盘的分区数为:%partn% ,其中最后一个分区盘符为:%last%
md %last%:\WGH
pause


[ Last edited by newxso on 2009-5-30 at 18:54 ]

2009-5-30 08:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wghxx
初级用户





积分 85
发帖 42
注册 2007-11-14
状态 离线
『第 7 楼』:  

谢谢! 的确是很好的批处理.
不过,有个小问题说下:若没有第二块硬盘,而我又设为 disk=1时,显示为错误,要是不论有几块硬盘总能准确获取最后一个硬盘中最后一个分区的盘符,又该如何修改呢?
再次感谢!

2009-5-30 09:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang
初级用户





积分 169
发帖 32
注册 2002-10-20
状态 离线
『第 8 楼』:  

没仔细看6楼的批处理,从楼主的要求看,应是实现了在最后分区创建目录的要求。
但实际应用上,是存在缺陷的,表现为多硬盘环境下,windods和dos下的硬盘顺序不一定是相同的。

一键恢复,虽然简单,但要完善及通用性强,也还是需要费一些心思的。
这就是为什么一键类工具很多,但好用的并不多。



GGhost一键恢复
http://gghost.uueasy.com
2009-5-30 22:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang
初级用户





积分 169
发帖 32
注册 2002-10-20
状态 离线
『第 9 楼』:  

个人建议,不一定要用最后硬盘的最后分区,而使用启动硬盘的最后分区来处理。
这样可能更合理些。
当然采用什么方案,作者应综合考虑。



GGhost一键恢复
http://gghost.uueasy.com
2009-5-31 01:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: