如何读取文本文件的2个连续行并将其保存为临时变量

Jef*_*f K 5 text-processing batch-file

我所拥有的文件有ID,modeldate.文件具有类似于格式10000_9999-99_10-01-2011.zip(其中,10000ID,9999-99model,当然10-01-2011date).

我想修改date这些文件的s,但保持会话之间的间隔相同ID.例如,如果2次会议有日期1/1/20112/1/2011,我想更新的最后一次会议日期8/1/2012,第一届会议将有日期7/1/2012.

目前我的代码如下所示:

@echo off
setlocal enabledelayedexpansion
del filedates.txt
FOR /F "tokens=1,2,3,4,5 delims=_" %%a in (filenames.txt) do @echo %%c >>filedates.txt
FOR /F "tokens=1,2,3 delims=-" %%a in (filedates.txt) do (
  echo %%a%%b
)
Run Code Online (Sandbox Code Playgroud)

输出类似于此(YearMonth):

201107
201109
201204
etc..
Run Code Online (Sandbox Code Playgroud)

我想要读取一行filedates.txt,将此日期存储为变量,然后读取下一行,并将其存储为另一个变量.这样可以比较两个变量,看哪个更大,并且过程将继续.

Eit*_*n T 2

一次读取两行的一种直接方法是使用循环逐行处理输入文件中的行for /f,并且仅对偶数行进行“反应”。这是示例代码:

@echo off
setlocal enabledelayedexpansion
set evenflag=1
for /f "tokens=*" %%x in (filedates.txt) do set x1=!x2! && set x2=%%x && (
set /a evenflag^^=1 && if !evenflag!==1 (
    rem Do something with !x1! and !x2!
))
Run Code Online (Sandbox Code Playgroud)

这里的变量evenflag是一个布尔标志,指示当前行号是否为偶数(1对于偶数行,0为奇数行)。x1x2保存当前读取的两行。