只更新壓縮包中已有的文件內容
用7z.exe
-
命令
7z.exe u c:\exist.zip -ur0w0 c:\update_dir
-
原理解釋:查看7z的幫助文件得下圖(可自行查看幫助並對比)
-
根據英文可知,更新壓縮包的命令u的默認配置爲下圖紅框所標識,轉換爲命令行爲
-up1q1r2x1y2z1w2
, -
r的意思是硬盤上有的且壓縮包中沒有的,2的意思是將硬盤的文件壓縮到壓縮包中;
-
w的意思是狀態不明(時間一致,但內容不一致);
-
再看我們的需求,只有硬盤上和壓縮包中都有的時候才更新文件,其他情況不管。
-
查看幫忙硬盤和壓縮包中都有的情況用命令描述爲y,默認已經配置爲更新到壓縮包了(即y的取值爲2),
-
測試發現,只用u命令不指定參數時,壓縮包中沒有的文件也會被添加進來,覈對幫助文檔,發現硬盤中有且壓縮包中沒有的情況爲r,默認情況下的取值爲2,也就是會新加到壓縮包中,這不是我們想要的
-
通過
-u
命令指定其取值爲0(忽略)。同理w的取值默認爲2,這個要根據你個人的需求來設置了,如果默認值符合你的要求,你可以不指定,不符合時,根據需要修改; -
說明:如果
c:\update_dir
目錄下有多級目錄,則7z會近按照路徑來匹配,這個可以放心使用;
用winrar
- 命令行:
winrar.exe af c:\exist.zip c:\update_dir
, 我之前測試失敗了,現象:多級目錄下的文件沒有刷新,後面有時間再看看具體是什麼原因;棄用winrar的原因:添加時會有個窗口彈出,比較煩;本來通過winrar.exe c:\exist.zip c:\update_dir\first\second\file.txt
,也可以達到目的,但實在太慢了!無法忍!