如何通过批处理文件中的时间戳识别/获取文件?

Prasanna Sekar

我有一个带有日期和时间的csv文件列表,例如“ Account_data_yyyymmdd.csv”,并随其时间戳一起每天添加到源dir。我必须标识最新文件,即“ Account_data_2020_08_05.csv”并在variable中设置值。所以我可以将其作为参数传递

源目录中的文件

  • Account_data_2020_08_05.csv
  • Account_data_2020_08_04.csv
  • Account_data_2020_08_03.csv

我必须根据其时间戳找到最近放置的文件,并将其作为调用另一个批处理的输入。突出显示的文本是批处理文件的参数。如何根据其时间戳查找最新文件并将其作为参数传递给

echo "start"
call process.bat "C:\CSVDataLod"  AccntDataloadprocess ***"dataAccess.name=C:\SourceDir\ Account_data_%year%_%month%_%date%.csv"***
莫菲

获取文件名中最新日期的CSV文件名的最简单,最快的方法是使用命令DIR,该选项带有/O-N按名称以相反顺序输出的CSV文件名的选项在这种情况下DIR首先输出具有最新名称的文件名DIR的输出必须使用FOR捕获并处理FOR循环运行与第一个文件名输出的其他批处理文件后退出DIR

@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "FileFound="
set "FileNamePattern=Account_data_20??_??_??.csv"
if /I "%~x1" == ".csv" set "FileNamePattern=%~nx1"
for /F "delims=" %%I in ('dir "C:\SourceDir\%FileNamePattern%" /A-D /B /O-N 2^>nul') do (
    echo Processing file %%I ...
    call process.bat "C:\CSVDataLod" AccntDataloadprocess "dataAccess.name=C:\SourceDir\%%I"
    if /I not "%~1" == "/A" goto EndBatch
    set "FileFound=1"
)
if not defined FileFound echo There is no file "%FileNamePattern%" in directory "C:\SourceDir".
:EndBatch
endlocal

我建议打开命令提示符并运行

dir "C:\SourceDir\Account_data_20??_??_??.csv" /A-D /B /O-N

然后,您知道FOR处理了哪些行下一轮

dir "C:\SourceDir\Account_data_20??_??_??.csv" /A-D /B
dir "C:\SourceDir\Account_data_20??_??_??.csv" /A-D /B /ON

了解DIR如何在不指定特定顺序的情况下输出CSV文件名,从而打印出文件名,这些文件名由文件系统返回,并按名称(按字母顺序而不是反向字母顺序)显式排序。

文件系统NTFS以本地特定字母顺序返回由通配符模式匹配的文件名列表,而FAT16,FAT32,exFAT等FAT文件系统返回的文件名根本没有排序。实际上,所有文件系统都按存储在文件系统表中的顺序返回文件名。在如何向文件系统表中添加文件名方面,文件系统仅使用不同的方法。FAT文件系统始终在目录表的末尾附加新文件名,而NTFS使用本地特定的字母排序算法在目录表中插入新文件名。

阅读有关使用命令重定向运算符的Microsoft文档,获取有关的说明2>nulWindows命令解释器在执行命令FOR之前,Windows命令解释器处理此命令行时,>必须^FOR命令行使用脱字符号将重定向操作符转义为文字字符,该命令在后台以和命令行启动的单独命令进程中执行嵌入式命令行内 作为附加参数。dir%ComSpec% /c'

编辑:

批处理文件可以使用/a/A作为参数来运行,以处理与通配符模式匹配的所有CSV文件(从最新到最旧),而不仅仅是最新的。批处理文件也可以使用.csv源目录中的文件名运行,以处理该特定CSV文件而不是最新的CSV文件。

为了了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。

  • call /?
  • dir /?
  • echo /?
  • endlocal /?
  • for /?
  • goto /?
  • setlocal /?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

批处理文件中的时间戳未正确更新

来自分类Dev

如何识别通过vbscript运行的批处理文件的过程

来自分类Dev

如何通过批处理文件获取特殊目录列表?

来自分类Dev

如何在批处理文件中打印当前时间?

来自分类Dev

如何在批处理文件中打印当前时间?

来自分类Dev

根据时间戳将文件复制到批处理文件中

来自分类Dev

如何从已执行的批处理文件中获取值

来自分类Dev

如何从批处理文件中获取窗口标题文本

来自分类Dev

如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

来自分类Dev

如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

来自分类Dev

从时间戳中减去12小时(批处理文件)

来自分类Dev

通过,转义和识别Windows批处理文件中的特殊字符

来自分类Dev

在批处理文件中无法识别sc.exe

来自分类Dev

如何通过批处理文件获取所有.h文件的父目录?

来自分类Dev

如何获取文件夹中每个文件的名称并应用于批处理文件?

来自分类Dev

如何使用批处理文件在系统文件夹中创建批处理文件

来自分类Dev

如何在任务管理器中识别正在运行的批处理文件?

来自分类Dev

如何从批处理文件中的xml中获取属性值以创建运行文件的条件

来自分类Dev

如何通过批处理文件杀死特定文件夹中的正在运行的进程

来自分类Dev

如何通过批处理文件从文本文件中删除不需要的行?

来自分类Dev

如何在批处理文件上设置时间限制?

来自分类Dev

如何使用父批处理文件中的参数调用子批处理文件?

来自分类Dev

如何通过PHP执行批处理文件?

来自分类Dev

如何通过批处理文件应用Windows 8主题?

来自分类Dev

如何通过运行批处理文件启动XAMPP MySQL?

来自分类常见问题

如何从批处理文件中检查文件是否存在

来自分类Dev

如何从批处理文件中检查文件是否存在

来自分类Dev

如何从批处理文件中检查文件是否存在

来自分类Dev

通过Powershell在批处理文件中传递参数

Related 相关文章

  1. 1

    批处理文件中的时间戳未正确更新

  2. 2

    如何识别通过vbscript运行的批处理文件的过程

  3. 3

    如何通过批处理文件获取特殊目录列表?

  4. 4

    如何在批处理文件中打印当前时间?

  5. 5

    如何在批处理文件中打印当前时间?

  6. 6

    根据时间戳将文件复制到批处理文件中

  7. 7

    如何从已执行的批处理文件中获取值

  8. 8

    如何从批处理文件中获取窗口标题文本

  9. 9

    如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

  10. 10

    如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

  11. 11

    从时间戳中减去12小时(批处理文件)

  12. 12

    通过,转义和识别Windows批处理文件中的特殊字符

  13. 13

    在批处理文件中无法识别sc.exe

  14. 14

    如何通过批处理文件获取所有.h文件的父目录?

  15. 15

    如何获取文件夹中每个文件的名称并应用于批处理文件?

  16. 16

    如何使用批处理文件在系统文件夹中创建批处理文件

  17. 17

    如何在任务管理器中识别正在运行的批处理文件?

  18. 18

    如何从批处理文件中的xml中获取属性值以创建运行文件的条件

  19. 19

    如何通过批处理文件杀死特定文件夹中的正在运行的进程

  20. 20

    如何通过批处理文件从文本文件中删除不需要的行?

  21. 21

    如何在批处理文件上设置时间限制?

  22. 22

    如何使用父批处理文件中的参数调用子批处理文件?

  23. 23

    如何通过PHP执行批处理文件?

  24. 24

    如何通过批处理文件应用Windows 8主题?

  25. 25

    如何通过运行批处理文件启动XAMPP MySQL?

  26. 26

    如何从批处理文件中检查文件是否存在

  27. 27

    如何从批处理文件中检查文件是否存在

  28. 28

    如何从批处理文件中检查文件是否存在

  29. 29

    通过Powershell在批处理文件中传递参数

热门标签

归档