我想检索log1.txt的内容,如果发现02则删除02及之后的连续三行,试了一下for遍历,在for和if中的set命令看来无法生效,试过把变量名加上%或!,都不起作用。以下是脚本,大家帮忙看看应该怎么标记变量名。
@echo off&setlocal enabledelayedexpansion
set/a num=0
(for /f "tokens=1,* delims=:" %%a in ('findstr /n .* log1.TXT') do (
set str=%%b
if num equ 0 (
if "!str:~0,2!"=="02" (set/a num=3
) else echo/%%b
)else (set/a num-=1)
) )>log2.txt
另外 这是只删一行的脚本,没有问题:
@echo off&setlocal enabledelayedexpansion
(for /f "tokens=1,* delims=:" %%a in ('findstr /n .* log1.TXT') do (
set str=%%b
if "!str:~0,2!"=="02" ( rem
) else echo/%%b
))>log2.TXT
log1.txt中的内容类似于:
01
02
03
04
05
06
需要格式化为:
01
06
麻烦大家给些建议 谢谢。
Last edited by namelessone on 2009-9-3 at 02:32 ]