![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 05:47 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]读取指定标记行后的文本内容 |
| 可打印版本 695 / 3 |
| 第1楼 uiopuiop | 发表于 2009-06-12 07:00 |
| 中级用户 发帖 211 积分 400 | |
|
[已结]读取指定标记行后的文本内容 读取指定标记行后的文本内容? 有个文本如下, 要读取最后一个
标记行后的内容。 标记左右有可能有些TAB和空格。 findstr /n /c:"" email_list.txt 倒是可以知道标记的行号。 email_list.txt emailx@xxx4.com emailad@xxx4.com emailx@xxx3.com emailx@xxx3.com emailx@xxx3.com emailx@222.com emailx@222.com emailx@222.com ~~~~~~~~~~~~~~~~ 输出的新文件因该是: emailx@222.com emailx@222.com emailx@222.com [ Last edited by uiopuiop on 2009-6-12 at 10:26 ] |
|
| 第2楼 ccwan | 发表于 2009-06-12 07:32 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
| 第3楼 uiopuiop | 发表于 2009-06-12 08:07 |
| 中级用户 发帖 211 积分 400 | |
|
楼上强的,加分 我也刚写出的我自己的代码,但没你的精简。
@echo off setlocal enabledelayedexpansion for /f "tokens=1* delims=:" %%i in ('findstr /n /i /c:"" email_list.txt') do ( set Mark_Str=%%j set Mark_Str=!Mark_Str: =! set Mark_Str=!Mark_Str: =! if /i !Mark_Str!== set Mark_LineNum=%%i ) ECHO !Mark_Str! ___ %Mark_LineNum% for /f "tokens=1* delims=:" %%1 in ('findstr /n .* email_list.txt') do ( if defined Mark_LineNum if %%1 GTR !Mark_LineNum! echo.%%2<nul>>appended_email.txt ) endlocal ~~~~~~~~~~~~~~~~~~~~~~~ 有关MORE 我有个问题,如果列表很长的话,MORE会不会列出一部分? 另外,如果把结果输出到文件? more +%num% <email_list.txt 为什么不行? [ Last edited by uiopuiop on 2009-6-12 at 08:15 ] |
|
| 第4楼 uiopuiop | 发表于 2009-06-12 08:56 |
| 中级用户 发帖 211 积分 400 | |
|
做了个实验,问题解决了。
如果列表很长,使用MORE 没问题。(email_list.txt 600多行) more +10 <email_list.txt >test.log 并且可以输出到文件。前面自己搞错了。 整合了一下: [ Last edited by uiopuiop on 2009-6-12 at 09:11 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |