无忧启动论坛
标题: 解决纯DOS下FOR命令不能使用/f /l 等参数的问题 [打印本页]
作者: 2011aaaaa0808 时间: 2011-10-8 06:23
标题: 解决纯DOS下FOR命令不能使用/f /l 等参数的问题
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 编辑 ]
-
QQ五笔截图未命名.jpg
(7.93 KB, 下载次数: 52)
作者: bbsphixy 时间: 2011-10-23 00:08
DOS下的for和系统下的for是有区别的,DOS下的for并没有系统下的for那么强大,很多参数都没的!
给你个方向:
omnifs + awk 结合使用(awk文字处理工具)
去学习awk的用法吧!
欢迎光临 无忧启动论坛 (http://wuyou.net/) |
Powered by Discuz! X3.3 |