压缩不同文件夹中的文件时如何保持文件夹完整性

压缩不同文件夹中的文件时如何保持文件夹完整性

我有一个批处理文件,它每天在我们的专用服务器上运行并压缩文件。

以下是批处理文件的一部分:

%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 将把它放回文件夹结构中。

请注意,您必须从压缩的同一文件夹解压缩,因为文件夹将在您当前位置下创建。

相关内容