2016-08-05 33 views
2

日期名我試圖壓縮SQL服務器備份(.bak)使用WinRAR的命令行命令文件。下面是我用命令:WinRAR的命令行壓縮特定文件與依賴於當前日期

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的文件?

回答

1

開始WinRAR的並在菜單中點擊菜單項幫助主題幫助。在標籤內容開放列表項命令行模式,並首先單擊命令行語法,你會看到打開的幫助頁面:

WinRAR的<命令> - <交換機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作爲最後一天內修改的文件。

在使用控制檯版本Rar.exe,而不是GUI版本WinRAR.exe使用程序中的文本文件Rar.txt的案卷WinRAR的文件夾,因爲這是家用機版的手冊。控制檯和GUI版本之間有一些不同的開關。

+0

'-ta '爲我做了詭計。謝謝。 – ma3stro

0

你可以這樣做:

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