![]() |
中国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 |