[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do (
  3.         set foo=%%i
  4.         set /a n+=1
  5.         if /i "!foo:~8,7!"=="[ ATA ]"   set min=!n!
  6.         if /i "!foo:~8,9!"=="[ SMART ]" set max=!n!
  7. )
  8. for /f "delims=" %%i in (1.txt) do (
  9.         set /a m+=1
  10.         if !m! gtr !min! if !m! lss !max! call,echo/%%~i
  11. )
  12. pause>nul
复制代码

TOP

如果中间的内容是一样的话,代码还可以简化:
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do (
  3.         set foo=%%i
  4.         set /a n+=1
  5.         if /i "!foo:~4,21!"=="ATA Device Properties" set min=!n! & set /a max=!n!+13
  6.         if !n! gtr !min! if !n! lss !max! call,echo/%%~i
  7. )
  8. pause>nul
复制代码
如果内容不同则用这个:

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do (
  3.         set foo=%%i
  4.         set /a n+=1
  5.         if /i "!foo:~4,21!"=="ATA Device Properties" set min=!n!
  6.         if /i "!foo:~4,19!"=="ATA Device Features"   set max=!n!
  7. )
  8. for /f "delims=" %%i in (1.txt) do (
  9.         set /a m+=1
  10.         if !m! gtr !min! if !m! lss !max! call,echo/%%~i
  11. )
  12. pause>nul
复制代码

[ 本帖最后由 asnahu 于 2009-10-31 08:48 编辑 ]

TOP

回复 5楼 的帖子

【    ATA Device Features:】前面是4个空格,ATA Device Features总共有19个字符。

for的使用可以参考:http://www.bathome.net/thread-2189-1-1.html

[ 本帖最后由 asnahu 于 2009-10-31 09:10 编辑 ]

TOP

返回列表