【问题标题】:How to move files older than 30 days to archive location and archive the files in archive location? [closed]如何将超过 30 天的文件移动到存档位置并将文件存档在存档位置? [关闭]
【发布时间】: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

【问题讨论】:

    标签: windows batch-file winrar


    【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-12
        • 1970-01-01
        • 1970-01-01
        • 2019-04-30
        • 1970-01-01
        • 2013-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多