中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何用批处理检测到硬盘中的分区数量。
作者:
标题: [已结]如何用批处理检测到硬盘中的分区数量。 上一主题 | 下一主题
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『楼 主』:  [已结]如何用批处理检测到硬盘中的分区数量。

制作一个在Win下做Ghost备份还原的小程序,需要检测硬盘中的分区数(插入U盘时也不影响检测结果),以便把备份文件自动存放到最后分区中,我知道用Ghost32.exe可以做到,但我想用批处理来完成应该更简单些,请问如何做到?

[ Last edited by axi on 2007-3-20 at 09:17 PM ]

2007-3-12 03:37
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 2 楼』:  

@echo off
set num=
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
fsutil fsinfo drivetype %%i: | find /i "固定" >nul 2>nul && set /a num+=1
)
echo 本地磁盘分区有 %num% 个。
pause>nul

2007-3-12 05:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 3 楼』:  

试试这个
@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=\" %%a in ('fsutil fsinfo drives^|find /v ""') do (
    set aa=%%a
    set aa=!aa:~-2!
    for /f "tokens=1 " %%i in ('fsutil fsinfo drivetype !aa! ^|find "固定"') do @echo %%i
)
pause

2007-3-12 05:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『第 4 楼』:  

htysm 的方法是可以,但插入U盘后检多了一个分区,请问如何解决呢?

2007-3-12 10:31
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  


Wmic LogicalDisk get caption,description,freespace


2007-3-12 10:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『第 6 楼』:  

qingfushuan 的方法是获取各分区盘符,但也把U盘也列出,也请问有无方法解决?

2007-3-12 10:35
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复
ww111222
中级用户




积分 354
发帖 83
注册 2003-3-23
状态 离线
『第 7 楼』:  

看不明白呀,

2007-3-12 12:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 8 楼』:  

老葛的东西呀!
呵呵

2007-3-12 13:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
llztt1
中级用户





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

有个drvtypes会显示所有现有盘符,及相关信息,批处理判断其信息,可以把U盘A、B、内存盘、各种光驱盘剔掉。。

2007-3-12 21:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 10 楼』:  

2楼的代码不会显示U盘的.除非你是移动硬盘.

2007-3-12 22:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by axi at 2007-3-11 09:35 PM:
qingfushuan 的方法是获取各分区盘符,但也把U盘也列出,也请问有无方法解决?

『第 13 楼』:  

试试下面的可以吗?

@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=\" %%a in ('fsutil fsinfo drives^|find /v ""') do (
    set aa=%%a
    set aa=!aa:~-2!
    for /f "tokens=1 " %%i in ('fsutil fsinfo drivetype !aa! ^|findstr /i "固定 移动"') do @echo %%i
)
pause

2007-3-13 01:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
oilio
高级用户

前进者


积分 641
发帖 303
注册 2007-1-10
状态 离线
『第 12 楼』:  

wmic logicaldisk where(drivetype='3') get caption



我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿!
2007-3-13 01:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『第 13 楼』:  

13 楼的方法试过,还是不行,我的u盘是被视作移动硬盘。

2007-3-13 01:48
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复

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


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



论坛跳转: