2011-01-17 24 views
1

データファイルから3行を読み込んで処理し、出力ファイルに出力するデータテキストファイル(42行を含む)とバッチファイルがあります。など3行バッチファイルで入力データを使用して出力ファイルを作成

にですが、そのように思える次読み:

ECHO OFF 
cls 

setLocal EnableDelayedExpansion 
for /f "tokens=* delims= " %%a in (data.txt) do (
set /a N+=1 
set v!N!=%%a 

) 

set iteration=1 
set /a eod=%N%/3-1 

:start 

if %iteration%==1 goto 1 
if %iteration%==2 goto 2 
. 
. 

:1 
ECHO iteration %iteration% >> output.txt 
set sn=!v1! 
set s=!v2! 
set d=!v3! 
goto e 

:2 
ECHO iteration %iteration% >> output.txt 
set sn=!v4! 
set s=!v5! 
set d=!v6! 
goto e 
. 
. 

私はラインで重複コードを棄権することができますので、それは変数を使用することが可能だ場合、私は聞きたい:セットSN = V1!代わりに次のような一文を書きます:set sn =!vN!

おかげ リナ

答えて

0

あなたはこれを試すことができます。

@echo off 
SETLOCAL EnableDelayedExpansion 
set n=0 
for /F "delims=" %%a in (cn.txt) do (
    set /a n+=1 
    set "v!n!=%%a" 
) 

call :GetThreePack 1 
echo sn=!sn! 
echo s=!s! 
echo d=!d! 
goto :eof 

:GetThreePack 
set /a n=3*%1 + 1 
set "sn=!v%n%!" 

set /a n+=1 
set "s=!v%n%!" 

set /a n+=1 
set "d=!v%n%!" 
goto :eof 
関連する問題