Ir ao conteúdo
  • Cadastre-se

Bat Descompactar arquivos dentro de pastas e subpastas


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Boa tarde,

 

Estou procurando um script/bat que possa descompactar os arquivos que foram compactados em .rar (com senha) e que estão dentro de pastas e subpastas.

 

Ex: eu tenho a pasta teste com 300 arquivos diversos compactados em .rar (doc, xls, world, fotos....), dentro dela, tem a pasta teste 2 tem 300 arquivos e  dentro dela tem a pasta teste 3 com 200 arquivos.

 

E:\Alvaro\Documentos\teste\..... 

 

O script/bat pegaria todos os arquivos que estão na paste teste e descompactaria dentro da pasta teste, pegaria todos os arquivos que estão na pasta teste 2 e descompactaria dentro da pasta teste 2, pegaria todos os arquivos que estão na pasta teste 3 e descompactaria dentro da pasta teste 3, e assim sucessivamente, lembrando que os arquivos foram compactados com senha

 

A título de informação, eu consegui o script/bat que é excelente e compacta os arquivos na estrutura acima com senha, o script/bat foi postado por um colega aqui do grupo em outro tópico a quase um ano atrás, mas estou precisando agora fazer o caminho inverso.

  

Pesquisei e tentei fazer o script mas não tenho conhecimento suficiente, se alguém puder me ajudar eu agradeço.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Olá Ricardo

 

Amigo é seu o script de compactação que estou usando, você postou ele num tópico sobre compactação o ano passado, ele é muito bom, queria deixar registrado meu agradecimento.

 

O que eu queria agora é fazer a descompactação automatica, indicar a pasta por exemplo teste e descompactar tudo que está dentro, nas respectivas sub pastas,  isso é possivel, desculpe se estou falando alguma besteira tentei fazer e não deu certo, como disse não tenho conhecimento suficiente.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Segue abaixo:

@echo off

REM Especifique aqui a pasta onde esta instalado o Winrar:
set Winrar=%Programfiles%\Winrar


REM Espcifique aqui onde esta a pasta onde voce quer compactar tudo:
set pasta=%userprofile%\desktop\Arquivos Gerais


REM Aqui estou colocando a senha de "Flamengo" em todos os arquivos troque conforme desejar
for /r "%pasta%" %%a in (*) do "%Winrar%\rar.exe" a -dr -m3 -ep1 -p"Flamengo" "%%a.rar" "%%a"
pause
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução

Veja se está bom agora. Ele pergunta se você quer compactar ou descompactar. No caso quando for para descompactar ele dele deleta os arquivos rar originais, se você não quer que ele delete os originais basta remover a linha:

del /q /a "%%a"

 

Ficou assim:

@echo off

REM Especifique aqui a pasta onde está instalado o Winrar:
set Winrar=%Programfiles%\Winrar\rar.exe

REM Especifique aqui onde está a pasta onde você quer compactar ou descompactar os arquivos:
set pasta=%userprofile%\desktop\Teste

REM Especifique aqui a senha:
set Senha=Flamengo

:Pergunta
cls
echo.
set /p "Pergunta=Deseja (C)ompactar ou (D)escompactar arquivos? "
if /i "%Pergunta%"=="c" goto :Compactar
if /i "%Pergunta%"=="d" (goto :Descompactar) else (goto :Pergunta)

:Compactar
for /r "%pasta%" %%a in (*) do "%Winrar%" a -dr -m3 -ep1 -p"%Senha%" "%%a.rar" "%%a"
exit

:Descompactar
for /r "%pasta%" %%a in (*.rar) do (
"%Winrar%" x -p"%Senha%" "%%a" "%%~dpa"
del /q /a "%%a"
)
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Ricardo, testei aqui e ficou show!!!! muito melhor do que eu havia pensado.

 

Valeu, muito obrigado!!!!

adicionado 18 minutos depois

Uma dúvida que surgiu se os arquivos estiverem em E:\Alvaro\teste

 

Na unidade E:\

 

O que preciso fazer para achar esse caminho? tentei mudar desktop\Teste para  E:\Alvaro\teste mas não deu certo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 6 meses depois...

@ricardo_br Boa tarde, no meu não funcionou.

você poderia me passar um script onde não precisa especificar a pasta onde eu quero descompactar?

 Eu encontrei esse script para compactar pastas em massa:
" for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\"

sendo que "c:\Program Files\7-Zip\7z.exe" é a pasta que está o meu programar compactador.

Como eu posso descompactar pastas e subpastas em massa usando este modelo acima?

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@ricardo_br infelizmente não funcionou.

eu uso esse escript para compactar:  for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\

tem como fazer um script para descompactar baseado nesse script acima?

tipo, o que precisa alterar para ele descompactar ao invés de compactar?

Link para o comentário
Compartilhar em outros sites

@henry matheus No caso seria um for para arquivo porque não vamos analisar as pastas e sim os arquivos e basicamente é só trocar o "a" por "x".

 

for /r "%~dp0" %%X in (*.zip *.rar .*.7z) do "c:\Program Files\7-Zip\7z.exe" x "%%X"

 

Mais poderia testar esse e informar os errors que aparecem no final? (Teste nas cópias ok?)

 

@echo off
set Seven=c:\Program Files\7-Zip\7z.exe
cls
echo.
set "Pergunta=d"
if /i "%Pergunta%"=="c" goto :Compactar
if /i "%Pergunta%"=="d" (goto :Descompactar) else (exit)

:Compactar
for /r "%pasta%" %%a in (*) do "%Winrar%" a -dr -m3 -ep1 -p"%Senha%" "%%a.rar" "%%a"
exit
:Descompactar
for /r "%~dp0" %%a in (*.zip *.rar *.7z) do "%Seven%" x -y -bse2 -bso0 -bsp0 -o"%%~dpa" "%%a"
pause

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...