2016-09-29 25 views
-1

我只需要获取文本文件(Movie.txt)的每个第三行并将其放在单独的文本文件( Title.txt)使用批处理脚本(/ F)如何获取每个第三行文本文件并将其放在使用批处理脚本的单独文本文件中

Movie.txt

Movie 
    Title 
    Anime1 
Movie 
    Title 
    Anime2 
Movie 
    Title 
    Anime3 
Movie 
    Title 
    Anime4 

Title.txt

Anime1 
Anime2 
Anime3 
Anime4 

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

+1

看看http://stackoverflow.com/questions/6471669/read-every-5th-line-using-batch-script –

回答

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)写入输出文件。

+0

明天当我到办公室时,我会试试这个..谢谢。 – g00re

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值,确保这两个标志明确开始,然后在文件的每一行,

如果没有定义line1,设置它
否则,如果line2未定义,请将其设置为
否则我们在*3行,因此反吐并清除这两个标志。

相关问题