[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%a in (a.txt) do (
  3.     if defined flag (
  4.         for /f "tokens=1,6" %%b in ("%%a") do (
  5.             if /i "%%b"=="AVGE" set "flag=" & echo,!Num!
  6.             set "Num=%%c"
  7.         )
  8.     )
  9.     if /i "%%a"=="D 11  Final seasonally adjusted data" set flag=1
  10. )
  11. pause
复制代码

TOP

回复 9# inflikt


    我用附件测试没有问题,5613.92

TOP

本帖最后由 apang 于 2013-10-23 09:16 编辑

这样试试呢?
  1. @echo off&setlocal enabledelayedexpansion
  2. (for %%i in (*.txt) do (
  3.     set "Num=" & set "flag="
  4.     for /f "usebackq tokens=1*" %%a in ("%%i") do (
  5.         set "str=%%a %%b"
  6.         if defined flag (
  7.             if /i "%%a"=="AVGE" set "flag=" & echo,!Num!
  8.             for %%c in (!str!) do set "Num=!a!" & set "a=%%c"
  9.         )
  10.         if /i "!str: =!"=="D11Finalseasonallyadjusteddata" set flag=1
  11.     )
  12. ))>$
  13. move $ Result.txt
  14. pause
复制代码
1

评分人数

    • foxJL: 乐于助人技术 + 1

TOP

蛋疼,试试vbs先,明天再说
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. strKey ="D *11  Final seasonally adjusted data"
  3. For Each file in fso.GetFolder(".").Files
  4.     If LCase(Right(file.Name,4)) = ".txt" Then
  5.         RegEx fso.OpenTextFile(file).ReadAll
  6.     End If
  7. Next
  8. Sub RegEx(text)
  9.     Set re = New RegExp
  10.     re.Pattern = strKey & "[\s\S]+?([^ ]+) +[^ ]+\s+AVGE"
  11.     re.IgnoreCase = True
  12.     For Each a In re.Execute(text)
  13.         fso.OpenTextFile("Result.txt",8,True).WriteLine a.SubMatches(0)
  14.     Next
  15. End Sub
复制代码

TOP

回复 16# inflikt


    14#改一下,试试看

TOP

返回列表