【问题标题】:display files between 2 dates in batch scripting在批处理脚本中显示两个日期之间的文件
【发布时间】:2012-10-03 12:51:04
【问题描述】:

我需要使用批处理脚本在文件夹中显示两个日期之间的文件(例如日期 2012 年 9 月 23 日至 2012 年 9 月 30 日)。

文件夹中有大约 50 万个文件。

我该怎么做?

【问题讨论】:

    标签: batch-file dir


    【解决方案1】:

    批量处理文件时间戳是一件很痛苦的事情。最简单的解决方案是使用 WMIC。

    这是一个简单的脚本,可以满足您的需求。它可以很容易地修改为使用 CreationDate 而不是 LastModified 日期。您还可以在输出中添加和减去其他列。键入 wmic datafile get /? 以获取可用列的列表(删除名称中的空格)。如果您希望结果按日期排序,可以将输出通过管道传输到 SORT。

    日期必须以 YYYYMMDD 格式指定。

    @echo off
    :listFilesBetweenDates  Path  StartDate  EndDate
    ::
    ::  List files found in directory Path with last modified date between
    ::  StartDate and EndDate
    ::
    ::  path = Directory to list. Use . for current directory
    ::
    ::  startDate = YYYYMMDD format
    ::
    ::  endDate = YYYYMMDD format
    ::
    setlocal
    set "drive=%~d1"
    set "folder=%~pnx1\"
    set /a "start=%~2, end=%~3+1"
    wmic datafile where "drive='%drive%' and path='%folder:\=\\%' and lastModified>='%start%' and lastModified<'%end%'" get lastModified, name
    


    示例用法 - 列出当前目录中 07-SEP-2012 和 17-SEP-2012 之间的文件

    D:\test>listFilesBetweenDates . 20120907 20120917
    LastModified               Name
    20120917155412.408435-240  d:\test\idlist.txt
    20120910160033.573531-240  d:\test\input.txt
    20120907180451.138275-240  d:\test\myurls.txt
    20120911115129.949457-240  d:\test\replace.bat
    20120917155853.541247-240  d:\test\temp1.txt
    20120917162208.635197-240  d:\test\temp2.txt
    20120917162217.595287-240  d:\test\temp3.txt
    20120911141557.105798-240  d:\test\test,2.txt
    20120910160622.664376-240  d:\test\test.vbs
    20120907161948.016121-240  d:\test\test3.bat
    20120910153717.558353-240  d:\test\test3.txt
    


    示例用法:列出临时目录中 26-SEP-2012 和 27-SEP-2012 之间的文件,按最后修改日期升序排列

    D:\test>listFilesBetweenDates "%temp%" 20100926 20120927 | sort
    
    20120926085420.368034-240  d:\users\xxxxxx\temp\~df8a4e7af0245496b2.tmp
    20120926085422.630049-240  d:\users\xxxxxx\temp\fxsapidebuglogfile.txt
    20120926085433.781136-240  d:\users\xxxxxx\temp\sof8436.tmp
    20120926085436.861167-240  d:\users\xxxxxx\temp\cvr941b.tmp.cvr
    20120926103842.351663-240  d:\users\xxxxxx\temp\~dfe34cb61c66a1dcd7.tmp
    20120926181118.453780-240  d:\users\xxxxxx\temp\~dfd0009f24c8c5eb31.tmp
    20120927100903.382946-240  d:\users\xxxxxx\temp\~df559b9f2b2763ac3f.tmp
    20120927100915.210126-240  d:\users\xxxxxx\temp\cvr3d51.tmp.cvr
    20120927100918.680196-240  d:\users\xxxxxx\temp\sof47cf.tmp
    20120927144827.689200-240  d:\users\xxxxxx\temp\tmpdbc8.tmp
    20120927144828.169209-240  d:\users\xxxxxx\temp\tmpddad.tmp
    20120927184908.066005-240  d:\users\xxxxxx\temp\~df401234aa9008c5e1.tmp
    LastModified               Name
    

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多