Winrar命令行根据当前日期压缩具有日期名称的特定文件

时间:2016-08-05 13:55:06

标签: groovy command-line file-type winrar

我尝试使用 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的文件?

2 个答案:

答案 0 :(得分:1)

启动 WinRAR ,然后在菜单项帮助主题上单击菜单帮助。在标签目录打开列表项命令行模式,然后先单击命令行语法,您将在打开的帮助页面上看到:

  

WinRAR< command> - <交换机1> - < switchN> <档案> <文件...> < @listfiles ...> < path_to_extract \>

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

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

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

${sourceDir}${fileType}之间不应有空格,而是反斜杠字符。

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

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

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

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

答案 1 :(得分:0)

你可以这样做:

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