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 编辑 ] |