我有一個批次文件,每天在我們的專用伺服器上運行並壓縮文件。
這是批次檔的一部分:
%SUBDIR%7z a -tzip %fullname% %datapath%\*.txt >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\spoolq.q >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\vblib\shared\settings.cfg >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\sssusers.d >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\#library\*prt.cfg >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\#library\printer.txt >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\#library\netuse.text >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\*.cfg >>%LOGFILE%
批次檔正在取得我想要的文件,但它們都位於同一目錄中,而不是位於原始目錄中。
我7z x filename.zip
在提取文件時嘗試過,但沒有給我任何不同的結果。
壓縮時是否必須指定開關?
謝謝您的幫忙!
編輯
我剛剛意識到我正在告訴 7z 將該文件按原樣放入存檔中。我意識到現在我的問題確實是,有沒有辦法在壓縮檔案時保留原始資料夾結構?
答案1
它非常弱,但您必須使用沒有驅動器或前導反斜線的相對路徑。
在你的例子中%datapath%
需要有"users\johnny\filespec"
而不是"c:\users\filespec"
.
Cd \
7z a –tzip myzip.zip users\johnny\tmp\tmp2\TMP2.TXT
將儲存資料夾結構。
然後,從您壓縮它的相同資料夾中,您可以使用 解壓縮它。 ..
7z x myzip.zip
7z 會將其與資料夾結構一起放回去。
請注意,您必須從壓縮的相同資料夾中解壓縮,因為這些資料夾將在您目前的位置下建立。