【问题标题】:get the files in folder between two timestamp using windows batch script使用 Windows 批处理脚本获取两个时间戳之间的文件夹中的文件
【发布时间】:2014-12-08 14:28:14
【问题描述】:

我有一个文件夹“脚本”。人们将文件签入到此文件夹。每次他们签入时,我都需要单独获取这些文件并执行它们。为此,需要将当前时间戳保存在某个日志文件中。这样我们就可以通过比较当前时间和上次执行时间(保存在日志文件中)来获取上次构建后修改的文件。让我解释清楚。

文件夹名称 -- 脚本。
此文件夹中有三个文件——a.sql、b.sql、c.sql


几个小时后 - 创建了两个新文件。 b.sql 也被修改。 一共五个文件——a.sql、b.sql、c.sql、d.sql、e.sql


现在我只需要执行这两个新文件和一个修改过的文件。
它应该如下所示
b.sql
d.sql
e.sql


我们需要将当前时间与上次执行时间进行比较,并获取在两个时间戳之间修改/创建的文件。

有人能告诉我如何使用批处理脚本吗?

【问题讨论】:

    标签: batch-file timestamp


    【解决方案1】:

    为了更简单的方法,您可能需要考虑使用分配给文件的 Archive 位。创建或更新文件时,这将设置为 1/ON。

    这个想法是您在设置了 Archive 位的文件夹中查找文件,然后在重置之前执行您的操作。

    REM Process all files which have the Archive bit set.
    FOR /F "usebackq tokens=* delims=" %%A IN (`DIR "C:\Dir\To\Process" /A:A /B`) DO (
        ECHO Processing File: "%%A"
    
        REM Do your actions here...
    
        REM Reset the Archive bit.
        ATTRIB -A "%%A"
    )
    

    【讨论】:

    • 它有效。非常感谢 :) 有没有办法按时间戳对文件进行排序?如果有多个文件,最后修改\创建的文件应该在最后。
    • @smartboy - 当然,在DIR 命令中,添加此开关:/O:D
    猜你喜欢
    • 2012-06-17
    • 2021-01-16
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多