自從開始使用winrar進行備份以來,我總是先選中要備份的目錄,然後點右鍵,備份到指定的檔案。如果裡面有較大的目錄和檔案(如debug目錄和.ncb檔案)時,就需要先將它們清除。這樣做,顯然非常繁瑣,而且效率非常低,特別不適於進行每天的備份。可我仍然堅持以上的方法數年。
這段時間,突然想解決備份的問題,於是上網查資料,查看winrar的協助檔案。大體的方案如下:
1、建立一個“備份檔案列表”。列入所有要備份的檔案和目錄的名稱。
2、建立一個捷徑,指向winrar的絕對路徑,然後加上命名行參數。
3、查看協助檔案知道,我們還可以指定一個“忽略檔案清單”,指定哪些檔案不必備份。
這樣的方案可行,當這幾個步驟完成後,確實能夠提高備份的效率。但由於以下幾個原因我沒有這樣做。
1、當工程很大時,特別是有多個解決方案,每個解決方案又有多重專案時,需要備份的目錄和檔案很多,而且需要忽略的目錄和檔案也很多。如果手動的製作“備份檔案列表”和“忽略檔案清單”,非常的繁瑣。
2、winrar的命令列參數很多,在進行配置時總是要查看協助檔案。
在下一篇文章中,我會推薦給大家兩個自製的指令檔,一個用於自動產生“備份檔案列表”和“忽略檔案清單”,另一個用於構造winrar命令列參數,啟動winrar的備份進程。不過,這裡,我們以一個VC++項目為例,看看“備份檔案列表”和“忽略檔案清單”是什麼樣的,以及winrar命令列參數如何配置。
1、假設我們有一個目錄mail,包含所有的原始碼、資源、成果檔案等。結構如下:
------+mail
-------------+code
---------------------+recv code
-----------------------------+debug
-----------------------------+release
------------------------------recv.ncb
-----------------------------其他代碼檔案
---------------------send code
-----------------------------+debug
-----------------------------+release
------------------------------send.ncb
-----------------------------其他代碼檔案
-------------+resource
---------------------+help
---------------------+images
---------------------+other files
-------------+result (將編譯後的檔案放入此目錄)
---------------------+recv.exe
---------------------+recv.pdb
---------------------+recv.ilk
---------------------+send.exe
---------------------+send.pdb
---------------------+send.ilk
---------------------其他檔案
2、我們需要備份整個mail目錄,但裡面的debug/release目錄要忽略,.ncb/.pdb/.ilk檔案要忽略。下面是具體的列表資訊。
1)“備份檔案列表”(list_append.txt):
mail //只有一行。
2)“忽略檔案清單”(list_ignore.txt):
mail/code/recv code/debug
mail/code/recv code/release
mail/code/recv code/recv.ncb
mail/code/send code/debug
mail/code/send code/release
mail/code/send code/send.ncb
mail/result/recv.pdb
mail/result/recv.ilk
mail/result/send.pdb
mail/result/send.ilk
3、假設mail目錄的絕對路徑為:e:/pimshell/mail,那麼winrar的命令列為:
"c:/program files/winrar/winrar.exe" a -u -r "e:/pimshell/mail/mail.rar" @備份檔案列表 -x@忽略檔案清單
a:表示進行的是壓縮動作
-u:進行更新式的備份
-r:備份所有子目錄
"e:/pimshell/mail/mail.rar":目標檔案
其他參數不常用,可參考winrar的協助檔案。