有没有可能用bat实现在文本中寻找连续若干行(大于2)都是相同的,然后将之删除?

例如
10.11
10.11
10.11
12.13
12.14
12.13
12.14
10.11
10.11
10.11
处理过后变为
12.13
12.14
12.13
12.14

@echo off&setlocal enabledelayedexpansion
set /p s=<test.txt
set  n=0
set first=1
(for /f "delims=" %%a in ('more +1 test.txt') do (
if "%%a"=="!s!" (set /a n+=1) else (
if !n! equ 1 (
echo !s!
echo !s!)
if !n! equ 0 echo !s!
set  n=0
)
set "s=%%a"
)
if !n! equ 1 (
echo !s!
echo !s! )
if !n! equ 0 echo !s!
)>result.txt

处理的文本是test.txt,生成的文件是result.txt

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-10
@echo off
for /f "delims=" %%i in (a.txt) do (if /i %%i geq 12 echo %%i)
pause

处理方法有好几种,具体采用那种得看你具体要处理的文本内容以及格式.这是其中一种,使用 if 命令比较,如果大于等于12的就显示.

追问

我那只是举例,连续重复行是字母的,行首是符号,文本内每一行的行首都是符号

追答

重复行的值是否确定,一个还是多个?还是仅删除连续重复行?

追问

确定值,删除连续重复行,一共需要删除3个关键值
就是删除行首为“> ab”的连续重复行,这是一个
一次删除一个关键值行吧?

追答

如果要删除的值确定那问题就很简单了,如果可以的话,把你所需要处理的文件和要删除那些值一并发我,因为我看你的描述中涉及到批处理中的特殊符号所以需要文档,以保证快速准确的解决问题.

相似回答
大家正在搜