我有一个批处理文件,它每天在我们的专用服务器上运行并压缩文件。
以下是批处理文件的一部分:
%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 将把它放回文件夹结构中。
请注意,您必须从压缩的同一文件夹解压缩,因为文件夹将在您当前位置下创建。