![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 15:57 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]如何用批处理检测到硬盘中的分区数量。 |
| 可打印版本 1,811 / 12 |
| 第1楼 axi | 发表于 2007-03-12 03:37 |
| 中级用户 发帖 93 积分 238 来自 GZ | |
|
[已结]如何用批处理检测到硬盘中的分区数量。 制作一个在Win下做Ghost备份还原的小程序,需要检测硬盘中的分区数(插入U盘时也不影响检测结果),以便把备份文件自动存放到最后分区中,我知道用Ghost32.exe可以做到,但我想用批处理来完成应该更简单些,请问如何做到?
[ Last edited by axi on 2007-3-20 at 09:17 PM ] |
|
| 第2楼 htysm | 发表于 2007-03-12 05:19 |
| 高级用户 发帖 415 积分 866 | |
|
@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 |
|
| 第3楼 qingfushuan | 发表于 2007-03-12 05:38 |
| 高级用户 发帖 327 积分 502 | |
|
试试这个
@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 |
|
| 第4楼 axi | 发表于 2007-03-12 10:31 |
| 中级用户 发帖 93 积分 238 来自 GZ | |
|
htysm 的方法是可以,但插入U盘后检多了一个分区,请问如何解决呢?
|
|
| 第5楼 lxmxn | 发表于 2007-03-12 10:32 |
| 版主 发帖 4,938 积分 11,386 | |
|
|
|
| 第6楼 axi | 发表于 2007-03-12 10:35 |
| 中级用户 发帖 93 积分 238 来自 GZ | |
|
qingfushuan 的方法是获取各分区盘符,但也把U盘也列出,也请问有无方法解决?
|
|
| 第7楼 ww111222 | 发表于 2007-03-12 12:31 |
| 中级用户 发帖 83 积分 354 | |
|
看不明白呀,
|
|
| 第8楼 0451lym | 发表于 2007-03-12 13:21 |
| 高级用户 发帖 357 积分 760 | |
|
老葛的东西呀!
呵呵 |
|
| 第9楼 llztt1 | 发表于 2007-03-12 21:34 |
| 中级用户 发帖 94 积分 214 | |
|
有个drvtypes会显示所有现有盘符,及相关信息,批处理判断其信息,可以把U盘A、B、内存盘、各种光驱盘剔掉。。
|
|
| 第10楼 htysm | 发表于 2007-03-12 22:51 |
| 高级用户 发帖 415 积分 866 | |
|
2楼的代码不会显示U盘的.除非你是移动硬盘.
|
|
| 第11楼 qingfushuan | 发表于 2007-03-13 01:00 |
| 高级用户 发帖 327 积分 502 | |
Originally posted by axi at 2007-3-11 09:35 PM: 『第 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 |
|
| 第12楼 oilio | 发表于 2007-03-13 01:25 |
| 高级用户 发帖 303 积分 641 | |
|
wmic logicaldisk where(drivetype='3') get caption
|
|
| 第13楼 axi | 发表于 2007-03-13 01:48 |
| 中级用户 发帖 93 积分 238 来自 GZ | |
|
13 楼的方法试过,还是不行,我的u盘是被视作移动硬盘。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |