Extrair arquivos em lote de todos os arquivos com 7-zip

3

Eu quero usar esse código em um lote. O primeiro passo é inserir a pasta de origem em que a árvore ficaria assim:

Oqueeuqueroalcançaréextrairtodotipodearquivodentrodapastadeorigemparaamesmapastaondeoarquivoestálocalizado,porexemplo."archive.zip" diretamente para "folder1".

Tenha este código abaixo, mas não tenha nenhuma ideia de como definir a variável de destino.

SET /P "source="

FOR %%F IN ("%source%\*.zip") DO "C:\Program Files-Zipz.exe" x "%source%\%%~nF.zip"
FOR %%F IN ("%source%\*.7z") DO "C:\Program Files-Zipz.exe" x "%source%\%%~nF.7z"
FOR %%F IN ("%source%\*.rar") DO "C:\Program Files-Zipz.exe" x "%source%\%%~nF.rar"
    
por Rayearth 29.06.2017 / 22:28

1 resposta

2

Extrair recursivamente dos arquivos com o 7Zip para a mesma pasta em que o arquivo está localizado

Você pode usar a opção -o com 7Zip que especificará o caminho completo do diretório de saída para o comando extract para extrair o conteúdo de arquivos archive aplicáveis.

Você pode usar um loop FOR / F com uma recursiva DIR comando para iterar os caminhos completos de arquivo e passá-los para 7Zip adequadamente usando substituições para fazê-lo funcionar como você precisa.

Script em lote

@ECHO ON

SET source=C:\Users\User\Desktop\Test
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%source%\*.zip"') DO "C:\Program Files-Zipz.exe" x "%%~fF" -o"%%~pF\"
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%source%\*.7z"') DO "C:\Program Files-Zipz.exe" x "%%~fF" -o"%%~pF\"
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%source%\*.rar"') DO "C:\Program Files-Zipz.exe" x "%%~fF" -o"%%~pF\"
EXIT

Mais recursos

  • DIR
  • FOR / F

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    %~sI        - expanded path contains short names only
    %~aI        - expands %I to file attributes of file
    %~tI        - expands %I to date/time of file
    %~zI        - expands %I to size of file
    %~$PATH:I   - searches the directories listed in the PATH
                   environment variable and expands %I to the
                   fully qualified name of the first one found.
                   If the environment variable name is not
                   defined or the file is not found by the
                   search, then this modifier expands to the
                   empty string
    
por 30.06.2017 / 04:01