none
Script para excluir arquivos (Comando DEL) RRS feed

  • Pergunta

  • Olá pessoal,

    Andei pesquisando no fórum sobre scripts para exclusão de arquivos, porém tudo que achei é meio complexo.

    Necessito de um script apenas para "limpar" determinadas pastas.

    Atualmente utilizo este:

    @echo off
    echo Apagando arquivos...
    cd C:\REPOSITORIO\Compartilhados
    del /F /S /Q /RD *.*

    Porém ele não apaga as pastas e subpastas do diretório.

    Existe algum comando que eu possa incluir ou outro script que eu possa fazer para esta finalidade? 


    • Editado Daniele Thoth segunda-feira, 13 de janeiro de 2014 13:05
    segunda-feira, 13 de janeiro de 2014 13:05

Respostas

  • Adicione ao final do seu script esta linha

    forfiles /P F:\Compartilhads\TempEmpresa_M$\Diario /S /C "cmd /c del /f /s /q @path"

    Se funcionar você pode deixar seu script apenas com as duas linhas FORFILES


    Fábio de Paula Junior

    segunda-feira, 13 de janeiro de 2014 16:47
    Moderador

Todas as Respostas

  • Olá amigo,

    Use o Powerhell, ele é mais completo:

    Removendo todos os arquivos e pastas de uma pasta

    Você pode remover os itens contidos usando Remove-Item, mas terá de confirmar a remoção caso o item contenha algo mais. Por exemplo, se você tentar excluir a pasta C:\temp\DeleteMe, que contém outros itens, o Windows PowerShell solicita a confirmação antes de excluir a pasta:

    Remove-Item C:\temp\DeleteMe
    
    Confirm
    The item at C:\temp\DeleteMe has children and the -recurse parameter was not
    specified. If you continue, all children will be removed with the item. Are you
    sure you want to continue?
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
    (default is "Y"):

    Caso você não queira que haja uma solicitação para cada item contido, especifique o parâmetroRecurse:

    Remove-Item C:\temp\DeleteMe -Recurse

    Nesse link você aprende a trabalhar com arquivos e pastas

    http://technet.microsoft.com/pt-br/library/dd315304.aspx


    Marcelo dos Santos Gonçalves

    Não se esqueça de “Marcar como Resposta” se resolveu seu problema. Caso foi útil algum link ou sugestão dê um voto na resposta.



    segunda-feira, 13 de janeiro de 2014 13:10
  • Daniele,

    Acrescente ao seu script a linha abaixo

    FORFILES /P C:\REPOSITORIO\Compartilhados /S /C "cmd /c if @isdir==TRUE rd @path /s /q"

    Esta linha apaga os diretórios vazios ou não.


    Fábio de Paula Junior

    • Sugerido como Resposta Erik Filippini segunda-feira, 13 de janeiro de 2014 13:12
    segunda-feira, 13 de janeiro de 2014 13:11
    Moderador
  • Meu script final ficou assim:

    @echo off
    echo Apagando arquivos...
    cd F:\Compartilhados\TempEmpresa_M$\Diario
    del /F /S /Q  *.*
    FORFILES /P F:\Compartilhados\TempEmpresa_M$\Diario /S /C "cmd /c if @isdir==TRUE rd @path /s /q"

    Eu fiz um teste antes executando no meu PC e funcionou de boa, mais quando eu executo do servidor todos os arquivos da pasta onde o script está são excluídos e na pasta indicada nada acontece.

    Estou utilizando o Windows server 2008, tem algo haver?

    segunda-feira, 13 de janeiro de 2014 15:58
  • Daniele,

    Execute o script a partir de um prompt de comando e repare se é exibido algum erro.

    Manda um print da tela se possivel.


    Fábio de Paula Junior

    segunda-feira, 13 de janeiro de 2014 16:11
    Moderador
  • Você está executando como administrador no servidor?
    segunda-feira, 13 de janeiro de 2014 16:12
  • segunda-feira, 13 de janeiro de 2014 16:21
  • Mesmo executando como admin.

    Ele deleta tudo que está na pasta do script...

    segunda-feira, 13 de janeiro de 2014 16:21
  • Adicione ao final do seu script esta linha

    forfiles /P F:\Compartilhads\TempEmpresa_M$\Diario /S /C "cmd /c del /f /s /q @path"

    Se funcionar você pode deixar seu script apenas com as duas linhas FORFILES


    Fábio de Paula Junior

    segunda-feira, 13 de janeiro de 2014 16:47
    Moderador
  • VLW MESMO PESSOAL! FUNCIONOU!
    Ficou assim:

    FORFILES /P F:\Compartilhados\TempEmpresa_M$\Diario /S /C "cmd /c if @isdir==TRUE rd @path /s /q"
    forfiles /P F:\Compartilhados\TempEmpresa_M$\Diario /S /C "cmd /c del /f /s /q @path"

    Obrigado!
    segunda-feira, 13 de janeiro de 2014 17:42
  • Fábio, bom dia.

    Ele só deleta o que tem dentro da pasta.

    O que mudaria no script para deletar também a pasta e não só os arquivos que a mesma contém?

    Obrigado!

    segunda-feira, 3 de outubro de 2016 12:34