如何将超过 30 天的文件移动到存档位置并将文件存档在存档位置? [关闭]

Posted

技术标签:

【中文标题】如何将超过 30 天的文件移动到存档位置并将文件存档在存档位置? [关闭]【英文标题】:How to move files older than 30 days to archive location and archive the files in archive location? [closed] 【发布时间】:2016-07-09 07:23:49 【问题描述】:

我必须为以下场景编写一个 Windows 批处理脚本:

我在文件夹 D:\Test 中存在 .txt 格式的日志文件。我还有另一个文件夹,名为D:\Test\archive

我必须将超过 30 天的文件移动到存档文件夹 D:\Test\archive,然后我必须使用 WinRARD:\Test\archiv 中存在的所有文件存档到单个 zip 文件。 p>

我的 zip 文件格式应为 ARCHIVE_SYSDATE

【问题讨论】:

【参考方案1】:

无需将超过 30 天的文件移动到子文件夹中进行归档。 WinRAR 具有内置选项,可以将超过 x 天/小时/分钟的文件直接移动到存档文件中。

启动WinRAR,点击Help Topics上的Help菜单并选择标签Contents。列表项 Command line mode 带有主页 Command line syntax 以及子项 CommandsSwitches包含指向所有命令和所有开关的字母列表的链接。

按字母顺序排列的命令列表对您的任务最有用的命令是:

m将文件和文件夹移至存档

字母开关列表中,对您的任务最有用的开关是:

-ag[format] 使用当前日期和时间生成存档名称-cfg-             忽略默认配置文件和环境变量- ep1             从名称中排除基本文件夹-ibck           在后台运行 WinRAR-m         设置压缩方法 -r-                 禁用递归-to    处理早于指定时间的文件-y                  在所有查询中假设是 p>

WinRAR帮助中的所有信息放在一起,使用的命令是:

"%ProgramFiles%\WinRAR\WinRAR.exe" m -agYYYY-MM-DD -cfg- -ep1 -ibck -m5 -r- -to30d -y D:\Test\archive\ARCHIVE_.zip D:\Test\*

注意:开关-y 也禁用所有错误消息的输出。

【讨论】:

【参考方案2】:

这应该让你开始。

 forfiles /d -30 /c "cmd /c if not @isdir==TRUE echo @file @fdate"

WinRAR 不是 Windows 的一部分。阅读它的帮助。

用你想要的命令 (copy) 替换 echo

forfiles /?copy /?。如果您指定日期而不是天数,XCopy 也可以在一行中完成。

请参阅我之前使用 Windows Shell 对象对 zip 的回答。 using Windows send-to for creating a one step send to>zip>to email

【讨论】:

以上是关于如何将超过 30 天的文件移动到存档位置并将文件存档在存档位置? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从某个日期之前的 .tar 存档中删除文件

将超过 31 天的文件移动到另一个驱动器

无法将存储容器中的文件移动到 Azure 中的存档存储

Linux使用find查找最后修改时间超过三天的文件并移动到指定目录

使用 powershell 和 7zip 创建存档的脚本

文件夹内的归档文件