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

回复 8楼 的帖子

2楼的代码,面对多个特定字符串,也是可以用的。
(*^_^*)

TOP

回复 4楼 的帖子

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

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

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

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

TOP

语句很简单。for + if的结构。主要是思路,代码是次要的。
第一次循环。没有发现abcd ,也没有flag=1. ,跳过,处理一行。
第二次循环。发现了abcd .  先做个标记(flag=1),处理下一行。
第三次循环。发现了flag=1 。显示这行内容。并同时把标记取消掉(flag=0)。为下次做准备。

然后不断重复这三个步骤,a.txt 中把abcd 所在的下一行,都显示出来。

TOP

文本中有几条指定的行,情况不一样的。最好陈述清楚。
  1. @echo off
  2. for /f "delims=:" %%a in ('findstr /n abcd a.txt') do set n=%%a
  3. for /f "skip=%n% delims=" %%a in (a.txt) do echo %%a&goto end
  4. :end
  5. pause>nul
复制代码
Still with wax

TOP

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

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set flag=0
  3. for /f "delims=" %%a in (a.txt) do (
  4. if "%%a"=="abcd" (set flag=1) else if !flag!==1 (set flag=0&echo;%%a)
  5. )
  6. pause
复制代码

[ 本帖最后由 inittab 于 2009-9-18 12:27 编辑 ]

TOP

返回列表