如何获取每个第3行文本文件并使用批处理脚本将其放在单独的文本文件中

时间:2016-09-29 06:13:53

标签: windows batch-file cmd

我只需要获取文本文件(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

目前我不知道如何获取所需的数据...... 我很感激您提供的任何帮助。谢谢。

2 个答案:

答案 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线上,所以要反刍并清除两面旗帜。