Batch file 批处理文件以重复检测到的行,并在最后一次重复文本文件后进行复制

Batch file 批处理文件以重复检测到的行,并在最后一次重复文本文件后进行复制,batch-file,Batch File,只需复制文本文件的选定部分。下面给出了一个示例txt文件 aaa bbb ccc ddd eee ccc fff ggg 请注意,“ccc”在此处重复两次(第3行和第6行)。我需要在最后一次重复“ccc”之后复制此文本文件的行(即,此处第6行),或者更清楚地说,我想将此示例文本文件中的第7行和第8行复制到新文本文件中。我已经尝试到下面给出的程度。下面给出的程序无法填充我的新文本文件,即check_txt_edited.txt。请帮助我完成任务 @echo off cd E:\Projects\

只需复制文本文件的选定部分。下面给出了一个示例txt文件

aaa
bbb
ccc
ddd
eee
ccc
fff
ggg
请注意,“ccc”在此处重复两次(第3行和第6行)。我需要在最后一次重复“ccc”之后复制此文本文件的行(即,此处第6行),或者更清楚地说,我想将此示例文本文件中的第7行和第8行复制到新文本文件中。我已经尝试到下面给出的程度。下面给出的程序无法填充我的新文本文件,即check_txt_edited.txt。请帮助我完成任务

@echo off
cd E:\Projects\Retrieve-data
set file=check.txt
type nul > check_txt_edited.txt
IF EXIST %file% (
    for /f %%a in ('type "%file%"^|find "" /v /c') do set /a ttl_cnt=%%a
    for /f "tokens=1 delims=:" %%i in ('findstr /n /c:ccc %file%') do set /a line=%%i
    set /a startline=%line%+1

    for /f %%b in (%file%) do (
        set /a startline+=1
        if %startline% leq %ttl_cnt% echo %* >> check_txt_edited.txt
            )   
) ELSE (
    ECHO %file% does not exist
    pause
)
欢迎提出任何意见。提前谢谢

谢谢,, 当做
Prasad Poduval

第一步:搜索最后出现的“ccc”(%x%=行号):

第二步:写下该行下方的所有行:

more +%x% %file%>check_txt_edited.txt
@ECHO关闭
SETLOCAL enabledelayedexpansion
设置“目标=ccc”
设置发生=2
设置“复制=”
(
对于/f“delims=”%(q24865244.txt)中的%%a(
如果定义了复制回波(%%a
如果“%%a”==%target%”(
设置/a发生-=1
如果!发生!==0设置“复制=Y”
)
)
)>newfile.txt
后藤:EOF
我使用了一个名为
q24865244.txt
的文件,其中包含用于测试的数据。 生成newfile.txt

只需设置目标和发生次数即可

我假设你想让目标和线匹配


如果要包括目标行,请在“%%a”中的
的右括号后移动
(如果已定义)
command.

一个小脚本怎么样?怎么样?你知道重复值是什么还是首先确定它所必需的吗?对不起,伙计们。我无法根据提供给你们的示例文本文件编辑我的程序。是的,我知道重复值。示例文本中的重复值是“ccc”。很抱歉这里有混淆。现在程序更新了。我知道了需要批处理文件本身。Python可能无法工作。
more +%x% %file%>check_txt_edited.txt