只需要复制文本文件的选定部分。下面给出了一个示例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
答案 0 :(得分:0)
第一步:搜索“ccc”的最后一次出现(%x%=亚麻布):
for /f "tokens=1 delims=:" %%i in ('findstr /n /x /c:"ccc" %file%') do set x=%%i
第二步:写下该行下面的所有行:
more +%x% %file%>check_txt_edited.txt
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL enabledelayedexpansion
SET "target=ccc"
SET occur=2
SET "repro="
(
FOR /f "delims=" %%a IN (q24865244.txt) DO (
IF defined repro ECHO(%%a
IF "%%a"=="%target%" (
SET /a occur-=1
IF !occur!==0 SET "repro=Y"
)
)
)>newfile.txt
GOTO :EOF
我使用了一个名为q24865244.txt
的文件,其中包含我的测试数据。
生成newfile.txt
只需设定目标并计算适合的数量。
我假设您希望目标与该线匹配。
如果要包含目标行,请在if defined
命令的右括号后面调用if "%%a"
。