Ir ao conteúdo

Bat compactar diretório com progressbar em tempo real


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

Prezados colegas!

 

Alguém poderia compartilhar seu conhecimento para este script?

Abaixo segue um script que está com um determinado erro:

O backup compactado é feito, porém somente após a conclusão da barra de progresso.

Todos os arquivos e pastas estão no diretório d:\caminho;

Todos os arquivos compactados ficarão no diretório d:\backup_files;

 

Gostaria que o mesmo acompanhasse o processo em tempo real.

 

Agradeço desde já pela atenção e colaboração de todos,

 

Obrigado.

:: a barra é preenchida antes da compressão dos arquivos;

@echo off
color 1E
title Processo de Backup
mode con: cols=58 lines=11

setlocal EnableDelayedExpansion
set Counter=0

if not exist d:\backup_files md d:\backup_files >nul
if not exist d:\backup_files\temp md d:\backup_files\temp >nul

if exist d:\backup_files\backup3.rar del d:\backup_files\backup3.rar 
if exist d:\backup_files\backup2.rar ren d:\backup_files\backup2.rar backup3.rar 
if exist d:\backup_files\backup1.rar ren d:\backup_files\backup1.rar backup2.rar 
if exist d:\backup_files\ultimo.rar ren d:\backup_files\ultimo.rar backup1.rar

dir /c /a /s d:\backup_files >d:\backup_files\temp\leia-me.txt

:1
set /a Counter=%Counter% + 1
set /a Display=%Counter% / 2
FOR /L %%A IN (1,1,%Display%) DO set Display=!Display!Û
cls
echo.
echo   Copiando Arquivos e Pastas, Aguarde...     %Counter% %%
echo. 
echo   Û!Display:~2,47!
ping localhost -n 1 >nul
if "%Counter%" == "100" endlocal & goto End
goto 1
:End
c:\arquiv~1\winrar\rar.exe a -r -inul d:\backup_files\ultimo d:\caminho\*.*
echo.
echo   BACKUP COMPLETADO COM SUCESSO...
echo.
echo   Pressione qualquer tecla para sair...
pause >nul

rar_com_progressbar.txt

  • Membro VIP
Postado

Não seria melhor remover toda essa tralha de barra de progresso do script e chamar no lugar do rar.exe o winrar.exe? Se não me engano, a versão com GUI (winrar.exe) aceita todos (ou quase todos) os parâmetros da versão CMD e de quebra mostra uma janela com o progresso. 🥳

 

Terá que usar "start /wait winrar.exe ..." provavelmente para o script aguardar o término.

Postado
2 horas atrás, Marcos FRM disse:

Não seria melhor remover toda essa tralha de barra de progresso do script e chamar no lugar do rar.exe o winrar.exe? Se não me engano, a versão com GUI (winrar.exe) aceita todos (ou quase todos) os parâmetros da versão CMD e de quebra mostra uma janela com o progresso. 🥳

 

Terá que usar "start /wait winrar.exe ..." provavelmente para o script aguardar o término.

 

Obrigado amigo pela breve resposta.

 

Como poderia ser esse comando? Substituir na linha do rar.exe?

 

Obrigado

  • Membro VIP
Postado

Remova o inútil loop entre ":1" e ":End" e substitua a invocação do rar.exe por:

 

start /wait c:\arquiv~1\winrar\winrar.exe ...

 

Observações: não testei, faz tempo que não uso mais o WinRAR; seria bom conferir o exit code (ERRORLEVEL e tal) do comando antes de exibir "backup completado com sucesso".

  • 2 semanas depois...
Postado
Em 18/12/2022 às 19:27, Marcos FRM disse:

Remova o inútil loop entre ":1" e ":End" e substitua a invocação do rar.exe por:

 

start /wait c:\arquiv~1\winrar\winrar.exe ...

 

Observações: não testei, faz tempo que não uso mais o WinRAR; seria bom conferir o exit code (ERRORLEVEL e tal) do comando antes de exibir "backup completado com sucesso".

Bom dia Marcos, tudo bem?

Antes de algo um feliz ano novo com muita saúde e paz para você e toda sua família.

Não funcionou amigo! Deixei assim:

@echo off
color 1E
title Processo de Backup
mode con: cols=58 lines=11

setlocal EnableDelayedExpansion
set Counter=0

if not exist d:\backup_files md d:\backup_files >nul
if not exist d:\backup_files\temp md d:\backup_files\temp >nul

if exist d:\backup_files\backup3.rar del d:\backup_files\backup3.rar 
if exist d:\backup_files\backup2.rar ren d:\backup_files\backup2.rar backup3.rar 
if exist d:\backup_files\backup1.rar ren d:\backup_files\backup1.rar backup2.rar 
if exist d:\backup_files\ultimo.rar ren d:\backup_files\ultimo.rar backup1.rar

dir /c /a /s d:\backup_files >d:\backup_files\temp\leia-me.txt

start /wait c:\arquiv~1\winrar\winrar.exe d:\backup_files\ultimo d:\caminho\*.* 

echo.
echo   BACKUP COMPLETADO COM SUCESSO...
echo.
echo   Pressione qualquer tecla para sair...
pause >nul

 

Primeiramente ele abre a janela do prompt em branco, depois mostra uma mensagem de nenhum arquivo encontrado e depois informa que o backup foi feito, só que não !

 

Estou quebrando a cabeça para resolver esse script, mas tá osso...

 

Obrigado pelo retorno amigo e uma excelente semana que se inicia.

  • Solução
Postado

Esse comando:

 

start /wait c:\arquiv~1\winrar\winrar.exe d:\backup_files\ultimo d:\caminho\*.*  

 

deveria ser algo assim:

 

start /wait c:\arquiv~1\winrar\winrar.exe a -ep1 -r d:\backup_files\ultimo.zip d:\caminho\*.*  

 

Além disso eu recomendo colocar o caminho para o winrar na variável path para que você não precise colocar o caminho completo para rar.exe, winrar.exe sempre que precisar....

  • Curtir 2
Postado
Em 02/01/2023 às 15:56, ricardo_br disse:

Esse comando:

 

start /wait c:\arquiv~1\winrar\winrar.exe d:\backup_files\ultimo d:\caminho\*.*  

 

deveria ser algo assim:

 

start /wait c:\arquiv~1\winrar\winrar.exe a -ep1 -r d:\backup_files\ultimo.zip d:\caminho\*.*  

 

Além disso eu recomendo colocar o caminho para o winrar na variável path para que você não precise colocar o caminho completo para rar.exe, winrar.exe sempre que precisar....

 

 

Muito obrigado amigo Ricardo, mas funcionou sim. Ele abriu a janela do winrar e fez a compactação dos diretórios. Agora irei colocar esse script no agendador de tarefas. Agradeço imensamente pelo ensinamento em resolver meu problema, muito obrigado.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!