我的文件带有ID
,model
和date
。文件的格式类似于10000_9999-99_10-01-2011.zip
(其中10000
是ID
,9999-99
是model
,当然10-01-2011
是date
)。
我想修改这些文件的date
,但是使用相同的ID
保持 session 之间的间隔。例如,如果2个 session 的日期为1/1/2011
和2/1/2011
,而我想将上一个 session 的日期更新为8/1/2012
,则第一个 session 的日期将为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
)
输出类似于以下内容(YearMonth):
201107
201109
201204
etc..
我想读取
filedates.txt
中的一行,将该日期存储为变量,然后读取下一行,并将其存储为另一个变量。这样,可以比较两个变量以查看哪个更大,然后该过程将继续。 最佳答案
一次读取两行的一种直接方法是使用for /f
循环逐个处理输入文件中的行,并仅对偶数行进行“ react ”。这是一个示例代码:
@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
是一个 bool 值标志,指示当前行号是否为偶数(偶数行为1
,偶数行为0
)。 x1
和x2
保存当前读取的行对。关于batch-file - 如何读取文本文件的两行连续并将其保存为临时变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12414356/