【问题标题】:Winrar command line compress specific files with date in name depending on current dateWinrar 命令行根据当前日期压缩名称中带有日期的特定文件
【发布时间】:2016-08-05 13:55:05
【问题描述】:

我正在尝试使用 WinRAR 命令行命令压缩 SQL 服务器备份 (.bak) 文件。这是我使用的命令:

def fileType = "*.bak"

"cmd /c \"${rarCmd}\" a ${rarName} ${parameters} ${sourceDir} ${fileType}".execute()

我的文件夹中有这些文件:

Basket_backup_2014_07_30_010007.bak
Basket_backup_2016_07_31_010007.bak
Basket_backup_2016_08_05_010006.bak
Basket_backup_2016_08_05_010007.bak

我只想压缩今天创建的文件。那么我应该如何修改fileType 变量以压缩名称中包含2016_08_05 的文件?

【问题讨论】:

    标签: groovy command-line file-type winrar


    【解决方案1】:

    启动 WinRAR 并在菜单项帮助主题上单击菜单帮助。在标签 Contents 打开列表项 Command line mode 并首先单击 Command line syntax,您将在打开的帮助页面上看到:

    WinRAR - -

    现在让我们将此行与您的代码行进行比较:

    "${rarCmd}" a ${rarName} ${parameters} ${sourceDir} ${fileType}
    

    您的代码中显然已经存在错误,即在命令后首先指定存档文件名,然后是开关,而不是先指定开关,然后再指定存档文件名。

    并且${sourceDir}${fileType}之间不能有空格,而是一个反斜杠字符。

    然后在内容列表中打开子列表Switches,然后单击字母开关列表。使用此列表构建您的parameters,同时从上到下阅读它。您最感兴趣的开关最有可能

    -cfg- -ep1 -ibck -inul -m5 -r- -tl -tn23h -y --
    

    -tn23h 表示文件的最后修改日期在最近 23 小时内(文件时间比当前时间新减去 23 小时)。您也可以使用-tn1d 表示最近在 1 天内修改的文件。

    如果使用控制台版本Rar.exe而不是GUI版本WinRAR.exe,请使用WinRAR程序文件夹中的文本文件Rar.txt,因为这是控制台版本的手册。控制台版本和 GUI 版本之间有一些开关不同。

    【讨论】:

      【解决方案2】:

      你可以这样做:

      def fileType = "*_${new Date().format('yyyy_MM_dd')}_*.bak"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多