我有数据文本文件(包括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!
由于 菜
答案 0 :(得分: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