Usuário com melhor resposta
Apagar arquivos e pastas com um bat diariamente

Pergunta
-
Olá pessoas...
O problema é o seguinte... preciso criar um arquivo bat que seja executado diariamente (task manager) que apague todos arquivos e pastas de um determinado diretório...
O comando DEL apenas apaga os arquivos... o comando RD apaga a pasta onde os arquivos estão e não somente o conteúdo, que é meu objetivo.
ps.: Trabalho com Linux, e para quem conhece, o que eu quero é equivalente ao "rm -rf /pasta/*"
ps2.: O diretório em questão é compartilhado e não quero apaga-lo e recria-lo para evitar problemas, tendo em vista que esse comando terá que ser executado em horário de produção.
Valeu pessoas!
- Editado Heathz sexta-feira, 8 de março de 2013 15:28 esqueci de um detalhe...
Respostas
-
Heantz,
Tente utilizar o comando ForFiles.
Exemplo:
forfiles /P c:\temp /c "cmd /c del @path /q & rd @path /s /q"
No exemplo eu apago todos os arquivos e pastas que estão dentro de C:\temp, c:\temp não é apagado.
Veja que não fiz qualquer tratamento no comando então tem hora que ele usa comando de apagar arquivo para tentar apagar diretório e vice-versa.
Fábio de Paula Junior
- Marcado como Resposta Heathz sexta-feira, 8 de março de 2013 16:01
Todas as Respostas
-
Heantz,
Tente utilizar o comando ForFiles.
Exemplo:
forfiles /P c:\temp /c "cmd /c del @path /q & rd @path /s /q"
No exemplo eu apago todos os arquivos e pastas que estão dentro de C:\temp, c:\temp não é apagado.
Veja que não fiz qualquer tratamento no comando então tem hora que ele usa comando de apagar arquivo para tentar apagar diretório e vice-versa.
Fábio de Paula Junior
- Marcado como Resposta Heathz sexta-feira, 8 de março de 2013 16:01
-
-
-
bom dia pessoal, aqui onde trabalho uso este que funciona bem com arquivos e pastas...e posso dizer quantos dias quero excluir os arquivos. fui adaptando conforme minha necessidade...
REM ///////////////////////////////////////////////////////////
REM // Define as variaveis de data //
REM ///////////////////////////////////////////////////////////
@REM make var nowDay
FOR /F "TOKENS=1* DELIMS=/" %%A IN ('date/t') DO SET nowDay=%%A
CALL ///////////////////////////////////////////////////////////
CALL // Lista em log os arquivos encontrados //
CALL///////////////////////////////////////////////////////////
CALL FORFILES /S /p (local completo pasta s/ parentreses\ /d -2 /C "CMD /C echo @FILE @FDATE" > C:\Logs\%nowDay%.log
CALL ///////////////////////////////////////////////////////////
CALL // Remove os arquivos encontrados //
CALL ///////////////////////////////////////////////////////////
CALL FORFILES /S /p (local completo pasta s/ parenteses)\ /d -2 /c "CMD /C DEL @FILE /Q" //exclui arquivos
CALL FORFILES /S /p (local completo pasta s/ parenteses\ /d -2 /c "CMD /C DEL & rd @FILE /Q" //excluir pastasespero ter ajudado
-
-
-
Edivaldo bom dia!
REM ///////////////////////////////////////////////////////////
Tentei usar o seu modelo, mas não funcionou. Vou colocar abaixo como fiz. Quero apagar nessa pasta arquivos com mais de 15 dias que não sofrem alterações.
REM // Define as variaveis de data //
REM ///////////////////////////////////////////////////////////
@REM make var nowDay
FOR /F "TOKENS=1* DELIMS=/" %%A IN ('date/t') DO SET nowDay=%%A
CALL ///////////////////////////////////////////////////////////
CALL // Lista em log os arquivos encontrados //
CALL///////////////////////////////////////////////////////////
CALL FORFILES /S /p C:\Users\psilva\Documents\Backup Rotina\ /d -15 /C "CMD /C echo @FILE @FDATE" > C:\Logs\%nowDay%.log
CALL ///////////////////////////////////////////////////////////
CALL // Remove os arquivos encontrados //
CALL ///////////////////////////////////////////////////////////
CALL FORFILES /S /p C:\Users\psilva\Documents\Backup Rotina\ /d -15 /c "CMD /C DEL @FILE /Q"
-