5

我有带有ID,modeldate. 这些文件的格式类似于10000_9999-99_10-01-2011.zip(其中10000ID9999-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
)

输出类似于此(年月):

201107
201109
201204
etc..

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

4

1 回答 1

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!
))

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

于 2012-09-14T22:13:40.593 回答