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

Вот часть командного файла:

%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 ответ1

2

Он довольно слабый, но вы должны использовать относительные пути без дисков или обратной косой черты.
В вашем примере %datapath% должен иметь "users\johnny\filespec" а не "c:\users\filespec" .

Cd \
7z a –tzip myzip.zip users\johnny\tmp\tmp2\TMP2.TXT

Будет хранить структуру папок.

Затем, из той же папки, куда вы его заархивировали, вы можете разархивировать его. ..

7z x myzip.zip

и 7z вернет его обратно со структурой папок.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .