Ir ao conteúdo
  • Cadastre-se

Outro .bat para copiar arquivos de uma pasta p/outra zipada de mesmo nome


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Olá pessoal, sou nova aqui e esse é meu primeiro post no forum, e toda ajuda é bem vinda.

 

Preciso criar um .bat para extrair arquivos de várias subpastas (dentro de uma unica pasta) e copia-los para uma outra pasta que contem o mesmo número e nomes das subpastas que quero extrair os arquivos, porém estas subpastas "destino" já estão zipadas.

 

São inúmeras subpastas criadas por um outro software. Sabendo onde as duas pastas principais estão, eu consigo criar um .bat que faça essa operação para todas as subpastas sem especificar o nome de cada uma? ou preciso extrair tudo, copiar e depois zipar de novo?

 

Vou anexar um print para facilitar a visualização :) Vi alguns posts do @ricardo_br que foram muito uteis (na questao de compactar e descompactar), mas sou iniciante (na verdade, é o minha primeira tentativa) e tá sendo bem frustrante.

Untitled.jpg

Link para o comentário
Compartilhar em outros sites

Uma observacao, eu vou ter que descompactar as subpastas de qualquer maneira. Entao, eu preciso descompactar as subpastas da pasta 1 (fiz manualmente na foto abaixo) e copiar os arquivos (das subpastas contidas na pasta 2 que nao estão compactadas) pra cada subpasta correspondente e depois compactar as mesmas novamente. O produto final sao as subpastas.zip na pasta 1. Tanto a pasta 1 quanto a 2 consistem em uma pasta principal ,com inumeras subpastas, e dentro de cada subpasta contem diversos arquivos.

 

 

-Pasta2                                                                                 -Pasta1

image.thumb.png.969f54d5293ac82b3b2f9f184a67cf72.png

Os arquivos precisam ser copiados de cada pasta               -                Depois de ter os arquivos da pasta 2 devidamente "colados" nas suas especificas subpastas,           
especifica e colados na correspondente subpasta na pasta1.               as mesmas devem ser compactadas novamente, gerando assim o produto final na Pasta 1

 

Vi num outro post @ricardo_br que voce tinha orientado a pessoa a usar este aqui pra compactar/desc.:

 

image.png.a553b242fa5a2b7ea2a76721c0165bdb.png
adaptei um pouco (modifiquei a pergunta e a questao de deletar no final), pois meu primeiro objetivo era descompactar corretamente (nao consegui, conseguia extrair os arquivos mas queria extrair tudo como normalmente o Winrar faz (uma unica pasta com os arquivos dentro). Como disse, essa é a primeira vez que tento fazer um .bat :) 

image.png.3c1809983629d24a2e0c5e494fa673a9.png

Link para o comentário
Compartilhar em outros sites

@ricardo_br Oi Ricardo, desculpe a demora, mas fiquei sem acesso ao computador durante o final de semana.

 

Sim, preciso descompactar as pastas da fonte A (nao existem subpastas dentro delas, somente arquivos) e ir na Fonte B e copiar os arquivos presentes em cada pasta (tambem nao existem subpastas, somente arquivos dentro das mesmas) da fonte B para as respectivas pastas na fonte A e compacta-las novamente.

 

Vale lembrar que depois de descompactar as pastas da Fonte A, essas pastas e as pastas da Fonte B serao iguais em numero e vão ter exatamente o mesmo nome, o que difere sao os tipos de arquivos em cada fonte.

 

A fonte e o destino serao a mesma pasta. 

Untitled.png

Link para o comentário
Compartilhar em outros sites

@ricardo_br

 

"Você tem 2 Fontes com subpastas e quer copiar para um destino com pastas zipadas é isso?" É isso, se for mais fácil excluir as pastas compactadas depois de descompactar (primeiro passo), tudo bem. Já que no final as mesmas vão ser compactadas novamente.

 

"Caso seja isso o que deve acontecer se existirem arquivos com nomes iguais em Fonte A e Fonte B?" Isso não vai acontecer, já que os arquivos das pastas da Fonte A são .bin e .txt, e os da Fonte B são .clp e .txt (os .txt não tem nomes iguais).

 

"No caso a "Fonte A" seria o destino" Isso.

Link para o comentário
Compartilhar em outros sites

  • Solução

Veja se é esse o resultado esperado: Gif Batch

 

Se for testar tente em uma cópia primeiro antes de tentar nos arquivos originais para ver se o resultado é realmente o que você quer.

 

Vou deixar o código aqui:

 

@echo off
:: Informe aqui o caminho para o Winrar:
set Winrar=C:\Program Files\WinRAR\WinRAR.exe

echo.
set /p "Pasta1=Por favor informe o Caminho da Fonte 01: "
echo.
set /p "Pasta2=Por favor informe o Caminho da Fonte 02: "
set Pasta1=%Pasta1:"=%
set Pasta2=%Pasta2:"=%

pushd "%Pasta1%"

Robocopy "%Pasta2%" "%Pasta1%" /e 

:: Verifica se existem arquiovs compactados na Fonte 01 e os descompacta e depois deleta
For /f "Delims=" %%a in ('dir /b /s *.rar *.zip *.7z') do (
                                                           "%Winrar%" e -y "%%a" "%%~dpna\"
                                                           del "%%a" /q 
                                                          )



:: Cria arquivo zip para cada pasta e depois apaga as pastas
For /f "Delims=" %%a in ('dir /b /ad') do (
                                           "%Winrar%" a -ep1 -dr -r "%%~a.zip" "%%~a\" 
                                           RD "%%a"
                                          )
popd                                

 

 

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

@ricardo_br

 

Eu estou sem palavras! Ficou perfeito!! Muito obrigada de verdade. Se você tiver qualquer literatura, canal no youtube ou qualquer coisa do tipo pra indicar pra quem tá começando, eu ficaria muito agradecida. São tantas as possibilidades, dá pra fazer tanta coisa. Novamente, muito obrigada. :) 

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

Eu gosto das aulas do John Hammond no youtube (elas são em inglês) mais se você vai começar é melhor ir logo para o powershell que é o sucessor do batch.

 

Esses sites também me ajudaram bastante:

pt.stackoverflow.com (em português)

stackoverflow.com (em inglês)

superuser.com (em inglês)

 

Lá tem códigos exemplo e você pode postar o seu código lá para outras pessoas te ajudar.

  • Curtir 1
  • Amei 1
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...

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.