gpt4 book ai didi

batch-file - 根据日期将 N 个文件保存在目录中的批处理文件

转载 作者:行者123 更新时间:2023-12-02 07:34:44 26 4
gpt4 key购买 nike

我正在寻找一种方法来将最新的 N 个文件保存在一个目录中,并删除旧的。

我在一个文件夹 (Windows Server) 中通过 FTP 获得了每日备份,我只想保留最后 3 个备份。这些备份有 2 个文件(第一个 .tar.gz,第二个是 MySQL 转储 .sql)。

关键是这些备份可能不会在某些天出现,所以我不想只删除超过 3 天的文件。但是尽可能多地删除文件,只保留最新的 6 个文件(3 天的备份,一次 2 个文件)。

如何使用 .bat 执行此操作?

提前致谢

最佳答案

比 Endoro 的回答更直截了当。这假设 .sql 和 .tar.gz 文件总是成对出现。

for /f "skip=6 eol=: delims=" %%F in ('dir /b /a-d /o-d *.tar.gz *.sql') do del "%%F"

解释:

DIR 命令列出按最后修改时间戳降序排列的文件。在命令提示符下键入 help dirdir/? 以获取有关所有选项含义的文档。 FOR 命令处理结果。 SKIP 选项跳过前 6 个文件,这些文件恰好是您要保留的文件,因为它们排序到顶部。剩余的文件名被传递给 DEL 命令。输入 help forfor/? 获取有关 FOR 的文档 - 它有点像野兽,有很多选项。

关于batch-file - 根据日期将 N 个文件保存在目录中的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com