Board logo

标题: [已结]如何用批处理检测到硬盘中的分区数量。 [打印本页]

作者: axi     时间: 2007-3-12 03:37    标题: [已结]如何用批处理检测到硬盘中的分区数量。
制作一个在Win下做Ghost备份还原的小程序,需要检测硬盘中的分区数(插入U盘时也不影响检测结果),以便把备份文件自动存放到最后分区中,我知道用Ghost32.exe可以做到,但我想用批处理来完成应该更简单些,请问如何做到? [ Last edited by axi on 2007-3-20 at 09:17 PM ]

作者: htysm     时间: 2007-3-12 05:19
@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

作者: qingfushuan     时间: 2007-3-12 05:38
试试这个 @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

作者: axi     时间: 2007-3-12 10:31
htysm 的方法是可以,但插入U盘后检多了一个分区,请问如何解决呢?

作者: lxmxn     时间: 2007-3-12 10:32
Wmic LogicalDisk get caption,description,freespace

作者: axi     时间: 2007-3-12 10:35
qingfushuan 的方法是获取各分区盘符,但也把U盘也列出,也请问有无方法解决?

作者: ww111222     时间: 2007-3-12 12:31
看不明白呀,

作者: 0451lym     时间: 2007-3-12 13:21
老葛的东西呀! 呵呵

作者: llztt1     时间: 2007-3-12 21:34
有个drvtypes会显示所有现有盘符,及相关信息,批处理判断其信息,可以把U盘A、B、内存盘、各种光驱盘剔掉。。

作者: htysm     时间: 2007-3-12 22:51
2楼的代码不会显示U盘的.除非你是移动硬盘.

作者: qingfushuan     时间: 2007-3-13 01:00
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

作者: oilio     时间: 2007-3-13 01:25
wmic logicaldisk where(drivetype='3') get caption

作者: axi     时间: 2007-3-13 01:48
13 楼的方法试过,还是不行,我的u盘是被视作移动硬盘。