本帖最后由 a262615704 于 2011-10-9 21:49 编辑
info.txt保存了两块磁盘的信息,内容如下:
Disk: 1 (149.05GB) M:[WDC WD1600AAJS-22PSA0] S:[WD-WCAP91806016]
1.1: ( 10.01GB) [G:\] Active Volume NTFS l:[GO7]
1.2: ( 18.94GB) [D:\] Volume NTFS l:[PAGE]
1.3: ( 100.09GB) [E:\] Volume NTFS l:[DATA]
1.4: ( 10GB) [F:\] Volume NTFS l:[WIN7]
1.5: ( 10GB) [C:\] Volume NTFS l:[WINXP]
( 2.49MB) Unused Space
Disk: 2 (7.50GB) M:[Ut165 USB Flash Disk 0.00]
2.1: ( 7.49GB) [I:\] Active Volume NTFS l:[时尚蛤蟆]
( 6.33MB) Unused Space
- setlocal enabledelayedexpansion
- for /f "tokens=1-3 delims=() " %%a in (info.txt) do (
- if "%%a" == "Disk:" (
- set /a value+=1
- set disk!value!=%%c
- for /f "tokens=1-7 delims=() " %%a in (info.txt) do (
- if "%%a" == "!value!.1:" (
- set par!value!=%%b
- set vol!value!=%%g
- )
- )
- )
- )
- echo 磁盘数量:%value%
- echo.
- for /l %%a in (1,1,%value%) do (
- if defined disk%%a (
- echo 第 %%a 磁盘容量:!disk%%a!
- if defined par%%a (
- echo 第一分区 容量:!par%%a!
- if defined vol%%a (
- echo 第一分区 卷标:!vol%%a:~3,-1!
- )
- )
- echo.
- )
- )
- echo *********************************
-
- pause>nul
复制代码
在XP下运行结果:
- *********************************
-
- 磁盘数量:2
-
- 第 1 磁盘容量:149.05GB
- 第一分区 容量:10.01GB
- 第一分区 卷标:GO7
-
- 第 2 磁盘容量:7.50GB
- 第一分区 容量:7.49GB
- 第一分区 卷标:时尚蛤蟆
-
- *********************************
复制代码
但是,在纯DOS下,不能使用for的 /f 和 /l 等参数,会提示语法错误。
请问,在纯DOS下,如何通过find、findstr、set等命令获得以上想要的结果?
非常感谢!! |