| 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
 autoexec.bat 内容如下:
 echo off
 echo *********************************
 echo.
 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 *********************************
 
 
 在XP命令行执行结果如下:
 *********************************
 磁盘数量:2
 
 第 1 磁盘容量:149.05GB
 第一分区 容量:10.01GB
 第一分区 卷标:GO7
 
 第 2 磁盘容量:7.50GB
 第一分区 容量:7.49GB
 第一分区 卷标:时尚蛤蟆
 
 *********************************
 
 
 
 但是,在纯DOS下不能使用for的 /f 和 /l 等参数,会提示语法错误。请问,在纯DOS下如何通过find、findstr、set等命令获得以上想要的结果?
 或者,在纯DOS下如何用获得字符Disk在info.txt中出现的所有行数分别赋给不同变量?
 
 
 小弟感激不尽!! 
 [ 本帖最后由 2011aaaaa0808 于 2011-10-9 22:13 编辑 ]
 |