我只需要获取文本文件(Movie.txt)的每第3行,并使用批处理脚本(for / f)将其放在单独的文本文件(Title.txt)中
Movie.txt
Movie
Title
Anime1
Movie
Title
Anime2
Movie
Title
Anime3
Movie
Title
Anime4
Title.txt
Anime1
Anime2
Anime3
Anime4
目前我不知道如何获取所需的数据...... 我很感激您提供的任何帮助。谢谢。
答案 0 :(得分:1)
@echo off
setlocal enabledelayedexpansion
set input=yourinput.txt
set output=youroutput.txt
set i=0
for /f "tokens=*" %%l in (%input%) do (
set /a i=!i!+1
set /a r=!i!%%3
if !r!==0 echo %%l>>%output%
)
我们可以使用模运算符和行计数器。 !i!
包含行号,!r!
是行号码模3 。因此,如果!r!==0
我们将行(%%l
)写入输出文件。
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
SET "line1="
SET "line2="
FOR /f "tokens=1*delims=" %%a IN (
'findstr /r "." "100lines.txt"'
) DO (
IF DEFINED line1 (
IF DEFINED line2 (
ECHO %%a
SET "line1="
SET "line2="
) ELSE SET line2=y
) ELSE SET line1=y
)
GOTO :EOF
您只需要替换输入文件名 - 我有一个名为100lines.txt
的文件,其中包含100行不同的文字。
由于变量的当前defined
状态作用于变量的run-time
值,请确保两个标志 clear 开始,然后为每个文件的行,
如果未定义line1
,请将其设置为
否则,如果未定义line2
,请将其设置为
否则我们就在*3
线上,所以要反刍并清除两面旗帜。