2016-09-29 5 views
-1

テキストファイル(Movie.txt)の3行目ごとに取得し、別のテキストファイルTitle.txt)/ fに対するバッチスクリプト()テキストファイルのすべての3行目をバッチスクリプトを使用して別のテキストファイルに入れる方法

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-5thlineline-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 

必要なのは、入力ファイル名を交換することである - 私は、テキストの100種類の行を含む100lines.txtという名前のファイルを持っています。変数のrun-time値に変数の現在definedステータス働くので

、二つのフラグがline1が定義されていない場合、ファイルの各ラインについて、

を開始する明らか、設定されていることを確認
line2が定義されていない場合は、
に設定します。それ以外の場合は、*3行にあるため、逆流させて2つのフラグをクリアします。

関連する問題