Board logo

标题: 所有dat文件中提取最后一行,输出到一个文件中 [打印本页]

作者: dss75     时间: 2009-5-7 05:40    标题: 所有dat文件中提取最后一行,输出到一个文件中

从当前目录的所有子目录中的所有dat文件中提取最后一行,输出到一个文件中。
当前目录下有多个子目录,每个子目录下有若干个 dat 文本格式文件,

最后若干行如下:
For M5|Adr   122|KD1       19      08:20:003 01W|Rb        1.38019 m   |HD         41.748 m   |                      |
For M5|Adr   123|KD1       20      08:20:153 01W|Rf        1.46366 m   |HD         41.484 m   |                      |
For M5|Adr   124|KD1       20      08:20:15  01W|                      |                      |Z         2.01193 m   |
For M5|Adr   125|KD1       20                01W|Sh        2.01193 m   |                      |                      |
For M5|Adr   126|KD2       20       12       01W|Db         520.31 m   |Df         520.47 m   |Z         2.01193 m   |
For M5|Adr   127|TO  End-Line                01W|                      |                      |                      |
                                             

                                 GD05---01-1W   |Db        3050.24 m   |Df        3050.41 m   |Z        -5.34509 m   | (要提取的行)
(空行)
上述括号及括号内内为注释。最后一行实际为空行,提取时要求为过滤空行后的最后一行。
所有提出行逐行写入一个文件内。
仅使用DOS批处理,XP系统。
我太菜,急死了!

[ Last edited by dss75 on 2009-5-7 at 05:43 ]
作者: netbenton     时间: 2009-5-7 13:10
@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%a in ('dir /s /b /a-d *.dat') do (
        for /f "delims=" %%b in ('type "%%a"') do (set str=%%b)
        echo.!str!
))>a.txt
作者: dss75     时间: 2009-5-7 22:13
谢谢netbenton!试试先

非常好用!!

为了便于区分,我在echo一句改了下
        echo.%%a: !str!

将每个文件名加在行首。


再次谢谢!

[ Last edited by dss75 on 2009-5-7 at 22:21 ]