Как сохранить целостность папок при сжатии файлов в разных папках

Как сохранить целостность папок при сжатии файлов в разных папках

У меня есть пакетный файл, который запускается на наших выделенных серверах каждый день и сжимает файлы.

Вот фрагмент пакетного файла:

%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 вернет его обратно со структурой папок.

Будьте осторожны, распаковывать архив нужно из той же папки, которую вы заархивировали, поскольку папки будут созданы в вашем текущем местоположении.

Связанный контент