Como mantenho a integridade da pasta ao compactar arquivos em diferentes pastas?

0

Eu tenho um arquivo em lotes que é executado em nossos servidores dedicados todos os dias e comprime os arquivos.

Aqui está uma parte do arquivo de lote:

%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%

O arquivo em lote está recebendo os arquivos que eu quero, mas eles estão todos no mesmo diretório e não em seus diretórios originais.

Eu tentei 7z x filename.zip quando extraí os arquivos, mas isso não me deu nenhum resultado diferente.

Preciso especificar um switch ao compactar?

Obrigado pela ajuda!

editar

Acabei de perceber que estou dizendo ao 7z para colocar esse arquivo no arquivo assim como está. Eu percebo que agora a minha pergunta realmente é, existe uma maneira de manter a estrutura original da pasta ao comprimir os arquivos?

    
por ErocM 27.01.2015 / 04:51

1 resposta

2

É muito fraco, mas você precisa usar caminhos relativos sem drive ou barra invertida.
No seu exemplo %datapath% precisa ter "users\johnny\filespec" em vez de "c:\users\filespec" .

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

Armazenará a estrutura de pastas.

Depois, na mesma pasta em que você fechou o zíper, é possível descompactá-lo. ..

7z x myzip.zip

e 7z o colocarão de volta na estrutura de pastas.

Cuidado, você tem que descompactar a partir da mesma pasta que você zipou porque as pastas serão criadas em sua localização atual.

    
por 27.01.2015 / 19:47