批处理文件检查文件的修改日期,然后将其与另一个进行比较

时间:2015-07-30 20:12:51

标签: batch-file

假设我有一些文件具有不同的日期修改时间。其中一些有所不同,有些只有几小时或几分钟。如何访问修改日期的时间然后进行比较,并按天排序?

例如,如果我有以下这组文件:

Date                    File
2015/07/29  15:31       A1
2015/07/29  16:00       A2
2015/07/30  15:00       B1
2015/07/30  15:05       B2

我希望输出为:

2015/07/29  16:00
2015/07/30  15:05

正如您所看到的,我并不关心文件的名称,我只想知道每天修改时间的最后日期。

2 个答案:

答案 0 :(得分:0)

尝试下面的命令,它将按照上次修改日期/时间的排序顺序提供文件列表。

dir /a:-D /O:-D /T:W

与dir命令一起使用的选项的说明

/ a:-D:只列出目录中的文件名。

/ O:-D:按照最新的日期排序文件。

/ T:W:会列出上次修改/上次写入时间的文件。

答案 1 :(得分:0)

以下内容返回唯一修改日期列表和每天的最新时间,最新日期首先显示:

FOLDER

说明:

此方法的核心元素是 Volume in drive D has no label. Volume Serial Number is 0000-0000 Directory of D:\StackOverflow\BatchTesting 2015/07/31 00:30 12 foo.txt 2015/07/30 20:15 512 bar.txt 2015/07/30 18:45 1'432 somelog.log 2015/07/30 09:00 573 testscpt.bat 2015/07/28 17:10 99 crapfile.tmp 5 File(s) 2'628 bytes 0 Dir(s) 100'000'000'000 bytes free 命令,应用于变量for给出的文件夹,输出如下:

dir

dir循环解析if输出,跳过标题并提取前两行(以空格分隔的)标记,即日期和时间,一行一行。设置dir选项,以便仅列出文件(无目录),并按照修改日期/时间的降序排序。

两个外部if语句确保忽略PREVIOUS输出的摘要行(如果在非英语系统上工作,则相应地调整搜索词)。

内部2015/07/31 00:30 2015/07/30 20:15 2015/07/28 17:10 语句将当前已解析行的日期部分与前一个进行比较,该部分存储在变量daytimes.bat中。在比较后,将其值存储在中,以用于下一次循环迭代。

所以这个批处理脚本的最终输出 - 当用上面的例子提供时 - 将是:

daytimes.bat > YourTextFile.txt

要将输出写入文本文件,请使用重定向调用批处理文件(让我们称之为import oauth2 as oauth import dicttoxml site = "https://www.inaturalist.org" access_token_url = "https://www.inaturalist.org/oauth/token" consumer_key = 'removed for security' consumer_secret = 'removed for security' oauth_verifier = 'removed for security' params = { 'client_id': consumer_key, 'client_secret': consumer_secret, 'code': oauth_verifier, 'redirect_uri': 'http://www.example.com/', 'grant_type': 'authorization_code'} consumer = oauth.Consumer(consumer_key, consumer_secret) client = oauth.Client(consumer) resp, content = client.request(access_token_url, "POST", body=params) #resp, content = client.request("https://www.inaturalist.org/observations/890489", "GET") print resp print content ):

return array($response1,$response2,$response3,$response4,$response5);