批处理脚本以比较数据

时间:2018-07-02 00:43:50

标签: batch-file batch-processing

在我们团队中,每天都有一群人从门户中提取报告,并将其命名为ABC_23MAY2018.txtXYZ_23MAY2018.txt并将其保存在目录中。

但是由于这是一个手动过程,所以人们会犯错,就像提取22MAY2018的报告(在门户网站输入中输入错误的日期)并将其命名为ABC_23MAY2018.txt等。
由于该文件用于报告目的,因此导致了很多问题。我正在考虑创建一个批处理脚本,该脚本将从文件名-23MAY2018中提取日期,并将其与将从另一个文件date.txt中提取的日期进行比较。我想出了从文件名中提取日期的方法:

set Filedate=ABC*.csv
 for /f %%A in ('dir /b %Filedate%') do (
  set filename=%%~A
  set fileCSV=!filename:~9,10!
  echo !filename:~9,10!
)

但是如何将其与文件中的日期进行比较。例如,从文件名中提取日期后,需要将其与值类似的数据data.txt进行比较:

ABC,23MAY2018                                                                              
XYZ,23MAY2018

因此,从ABC_23MAY2018.txt提取的日期需要与第一行进行比较,第二列具有日期。如果它们相等,则将文件移到另一个目录。

如何实现?希望我能很好地解释我的问题。

1 个答案:

答案 0 :(得分:0)

我会用。

  • 正常访问文件%%A
  • a用于/ f,将_的名称(不带扩展名)拆分为%%B%%C
  • 使用findstr检查{。{1}}是否存在于date.txt中。
  • 如果发现移动文件

技术上来说,findstr和move两者可以在一行上, 但这很难遵循。


"Name,Date"