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

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

Tenho um arquivo em lote que é executado em nossos servidores dedicados todos os dias e compacta os arquivos.

Aqui está um pedaço do arquivo em 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á obtendo os arquivos que desejo, mas eles estão todos no mesmo diretório e não em seus diretórios originais.

Tentei 7z x filename.zipextrair os arquivos, mas não me deu nenhum resultado diferente.

Preciso especificar uma opção ao compactar?

Obrigado pela ajuda!

editar

Acabei de perceber que estou dizendo ao 7z para colocar esse arquivo no arquivo exatamente como está. Percebo que agora minha pergunta é: existe uma maneira de manter a estrutura de pastas original ao compactar os arquivos?

Responder1

É muito fraco, mas você precisa usar caminhos relativos sem unidade ou barra invertida inicial.
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.

Então, na mesma pasta em que você o arquivou, você pode descompactá-lo com a extensão . ..

7z x myzip.zip

e 7z irá colocá-lo de volta na estrutura de pastas.

Cuidado, você deve descompactar da mesma pasta compactada porque as pastas serão criadas no seu local atual.

informação relacionada