我正在創建一個備份實用程序,用於將文本文件中列出的所有文件壓縮。我使用MS ACCESS作爲我的前端和7-Zip進行壓縮。這些是我正在使用的命令:7-zip命令行
7zG.exe a c:\Backup\backup.zip
@c:\temp\tmpFileList.txt
所有文件壓縮時都沒有它們的路徑。有沒有辦法在zip文件中包含每個文件的路徑?然後,當提取backup.zip
時,這些文件將被恢復到其原始文件夾結構。
謝謝
我正在創建一個備份實用程序,用於將文本文件中列出的所有文件壓縮。我使用MS ACCESS作爲我的前端和7-Zip進行壓縮。這些是我正在使用的命令:7-zip命令行
7zG.exe a c:\Backup\backup.zip
@c:\temp\tmpFileList.txt
所有文件壓縮時都沒有它們的路徑。有沒有辦法在zip文件中包含每個文件的路徑?然後,當提取backup.zip
時,這些文件將被恢復到其原始文件夾結構。
謝謝
7-Zip的命令行程序是7z或7za。以下是有關可用選項的helpful post。 -r(遞歸)選項存儲路徑。
感謝Vinay的迴應..但我無法在我的7-zip目錄中找到7za.exe,也有7z.exe有0個字節。我使用7zG.exe,因爲它顯示的是GUI進度條而不是DOS屏幕。唯一的問題是它不包括文件所在的路徑 – Arnold 2009-09-02 08:23:40
在this 7-zip forum thread中,很多人都表達了對這個功能的渴望,7-zip的開發者Igor指出FAQ question這個標題爲「如何存儲檔案中完整路徑的文件?」。達到類似的結果。
簡而言之:體積(一個列表的文件上C:\
,一個用於D:\
等)
cd /d C:\
)C:\Foo\Bar
成爲Foo\Bar
)7z a archive.7z @filelist
這個新的文件列表我沒有看過這個,但從臀部拍攝我會說,他們放棄了便攜式的命令行支持。人們在便攜式應用程序中沒有做太多命令行工作的原因是,操作系統(Windows)需要將可執行文件添加到%path%包含列表中。
如果使用命令行工具沒有滿足這個要求,那麼這個工具非常繁瑣。
7z -a 。
將
d:\便攜式\ Z7 \ Z7 -ac:\到\存檔\文件夾*
打字說出來的一切是爲什麼GUI的事情就像是便攜式應用纔有意義它(應用程序)可以記住它自己的位置併爲你處理這些東西,如果你不能運行它,你就會知道它沒有連接。
如果你真的想要便攜式應用程序來包含,儘管你可以隨時安裝完整版本,並拉出所需的7z.exe並將其放入可移植文件夾,確保它在所需的DLL中。
確定連接後你必須設置你的路徑。
http://www.redfernplace.com/software-projects/patheditor/ - 一個好的路徑編輯器(向下)如果你有很多路徑信息,那麼有用20+難以閱讀。
http://www.softpedia.com/get/System/System-Miscellaneous/Path-Editor.shtml - 爲路徑編輯alternet源
這不是建議修改你的系統路徑temproary 「便攜式」 硬盤雖然manualy做到這一點:
集路徑=%路徑%;「d: \便攜式\ Z7 \「;
當您運行DOS CMD.EXE或http://sourceforge.net/p/conemu/home/Home/
其他的答案解決其他問題的更好的,我不打算嘗試..
http://www.codejacked.com/zip-up-files-from-the-command-line/ - 爲Z7和z7a命令行的使用很好的參考。
PS:對不起necro,但我覺得它需要更直接的答案爲什麼(即使它只是推測)。
由於7-拉鍊版本9.25阿爾法存在可被用於存儲完整的文件路徑包括驅動器號到存檔新-spf
開關。
7zG.exe a -spf c:\BAckup\backup.zip @c:\temp\tmpFileList.txt
現在應該工作得很好。
7-Zip需要列表文件中的相對路徑,否則它將只存儲文件名,導致重複的文件名錯誤。
假設你的列表中包含完整的路徑名:
如果您的列表文件具有相對於另一個文件夾的路徑,則應該從該文件夾運行7Z。
更新:我從上面的另一個帖子注意到,新的7-Zip有一個-spf選項,不需要上述步驟。尚未對其進行測試,但我的步驟適用於沒有此選項的早期版本。
如果您設法將路徑合併到zip文件中,請使用相對路徑,否則您將無法將其恢復到除原始位置以外的其他任何位置。 – pavium 2009-09-02 08:10:07