Arquivo em lote para arquivos ZIP somente no diretório ou subdiretório

1

Eu queria saber, se possível, como criar uma linha de comando para fazer o seguinte - se existir um diretório ZIP somente o conteúdo em um arquivo ZIP. Se um diretório tem subdiretórios ZIP apenas o conteúdo em outro arquivo ZIP.

Exemplo:

C:\Directory\sample.txt ZIP only sample.txt
C:\Directory\Directory1\sample1.txt ZIP only sample1.txt
C:\Directory\Directory1\Directory2\sample2.txt ZIP only sample2.txt

Por isso, teria criado 3 arquivos zip em C: \ Directory e subdiretórios.

Eu não sei o nome dos subdiretórios, então eu também posso atribuir algum tipo de variável que diga se existem diretórios ou subdiretórios em C:\Directory e depois começar acima de ZIP (s)?

Obrigado,

Paul

    
por PaulJavier 23.07.2013 / 21:27

3 respostas

3

Coloque isso no arquivo de lote:

REM Usage: ZipFilesRecursively.bat "C:\My Files"
for /R "%~f1" %%F in (*) do 7z a "%%~dpFfiles.zip" "%%F"

Ele compacta todos e somente todos os arquivos em files.zip archive criado no diretório C:\My Files e em todos os seus subdiretórios.

    
por 24.07.2013 / 11:40
0

Se você não conhece a lista de diretórios, você pode percorrê-los com o comando FOR .

Em um prompt de comando do Windows, digite FOR /? para obter informações sobre sua sintaxe e usar.

O que eu provavelmente faria é usar isso para copiar todos os arquivos importantes para um novo subdiretório e zipar isso. Mas usando o arquivo de ajuda, você deve ser capaz de descobrir o que precisa fazer.

    
por 23.07.2013 / 22:06
0

Isso pode ajudá-lo:

Dir /A:D /B - exibe todos os subdiretórios em um diretório

Dir /A:-D /B - exibe apenas os arquivos contidos em um diretório

O resultado de Dir /A:D /B pode ser usado para verificar se um diretório contém subdiretório ou não.

    
por 04.01.2014 / 13:29