中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 19:42
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 所有dat文件中提取最后一行,输出到一个文件中
可打印版本  715 / 2
第1楼 dss75 发表于 2009-05-07 05:40
新手上路 发帖 2 积分 2
所有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 ]
第2楼 netbenton 发表于 2009-05-07 13:10
银牌会员 发帖 752 积分 1,916 来自 广西
@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
第3楼 dss75 发表于 2009-05-07 22:13
新手上路 发帖 2 积分 2
谢谢netbenton!试试先

非常好用!!

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

将每个文件名加在行首。


再次谢谢!

[ Last edited by dss75 on 2009-5-7 at 22:21 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023