Создать выходной файл, используя входные данные по пакетному файлу - PullRequest
1 голос
/ 17 января 2011

У меня есть текстовый файл данных (включая 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
.
.

Я хочу спросить, можно ли использовать переменную, чтобы я мог избежать дублирования кода в строках: set sn =! V1! и вместо этого написать что-то вроде: set sn =! vN!

Спасибо Rina

1 Ответ

0 голосов
/ 17 января 2011

Вы можете попробовать это.

@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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...