【发布时间】:2012-09-07 00:27:03
【问题描述】:
我有带有ID、model 和date 的文件。这些文件的格式类似于10000_9999-99_10-01-2011.zip(其中10000 是ID,9999-99 是model,当然10-01-2011 是date)。
我想修改这些文件的dates,但使用相同的ID 保持会话之间的间隔。例如,如果 2 个会话的日期为 1/1/2011 和 2/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 中的一行,将此日期存储为变量,然后读取下一行,并将其存储为另一个变量。这样可以比较两个变量,看看哪个更大,然后这个过程会继续。
【问题讨论】:
-
MS-DOS 不支持使用
/F参数的扩展 for 循环,因此您必须使用 Windows(NT 或更高版本)。 -
只是出于好奇,因为您显然运行的是相当新版本的 Windows(基于
setlocal和for /f语法),您是否有理由不这样做PowerShell,这会更容易吗? -
我正在编写一个几乎完成的代码。所有这些代码都是使用命令行编写的,否则我会使用 powershell
标签: batch-file text-processing