2011-01-17 3 views
1

데이터 텍스트 파일 (42 개 포함)과 데이터 파일의 각 반복을 3 줄씩 읽고 배치하고 출력 파일에 출력을 입력하는 배치 파일이 있습니다. 등 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! 대신에 다음과 같은 일을 쓰자 : 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 
관련 문제