[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理读取在指定字符串的下一行字符串

例如:

文本里有

abeeeeee
abcd
uuuuu


1:假设abcd和uuuuu这两条字符串是依附在一起的,行的位置没规定
2:假设UUUUU实际为任意字符
3:指定的字符串在TXT里可能不止一个


现在想读取abcd下面那行的字符串,如果以上面例子,就是想读取UUUUU这一行


谢谢,试过用for 还是想不出来,只知道skip是跳过第几行,eol是忽略,但这两个好像用不了,请帮忙

[ 本帖最后由 pine 于 2009-9-21 11:49 编辑 ]
1

评分人数

    • keen: 感谢主动给标题标注[已解决]字样PB + 2

可以注释一下吗?你这个我看不懂

TOP

非常感谢你们两位,Lumiere 你写的我看懂了,但inittab麻烦你注释一下代码,我还是看不懂

TOP

回复 2楼 的帖子

为什么改成这样就不行了?

@echo off&setlocal enabledelayedexpansion

for /f "delims=" %%a in (a.txt) do (
if "%%a"=="abcd" set flag=1
if !flag!==1 set flag=0&echo %%a
)
pause

TOP

回复 4楼 的帖子

嗯,我是漏了这一点,谢谢提醒,如果在TXT里不止这一个特定的字符串,该怎么做呢?

你的代码是当显示出下一行时,就强制终止,如果是多个特定字符串,怎么办?

TOP

那为什么我改成这样就不可以?

@echo off&setlocal enabledelayedexpansion

for /f "delims=" %%a in (a.txt) do (
if "%%a"=="abcd" set flag=1
if !flag!==1 set flag=0&echo %%a
)
pause


错在哪里呢?

TOP

回复 11楼 的帖子

call :end !n!    后面怎么多个!n!

下面的skip=%1  怎么会是%1?



嗯,以后发贴我会想清楚再发,谢谢提醒,不好意思了,老麻烦大家,不过可以的话,希望你们能费点时间作个代码注释,详细说明下代码原理,这样有助于新手们看,自己去消化理解,有时注释的内容可以让我们更进一步增益自己的思路;老是问了问题解决后就取现成的代码,我自己都觉得都尴尬了

TOP

嗯,回头我多看看基础命令,刚的问题麻烦你看一下,你的代码出错,另外

call :end !n!    后面怎么多个!n!

下面的skip=%1  怎么会是%1?

TOP

明白了,谢谢。

另外麻烦Lumiere能讲一下你最后写的代码,好像有错

TOP

回复 11楼 的帖子

我还是有点看不懂,在论坛搜了  CALL关于参数的,没找到,所以理解不过来,麻烦你讲解一下,谢谢

skip=%1  为什么这里会有%1,     CALL  :END  !n!   后面的!n!是参数,是代表什么呢,就这两个不理解

TOP

明白了,谢谢楼上几位朋友

TOP

返回列表