none
Apagar arquivos pela idade RRS feed

  • Pergunta

  • Pessoal,
    Eu não tenho muita intimidade com criação de scripts, mas acho que só um script pode resolver meu problma.
    Eu enho uma pasta compartilhada pública, para troca de arquivos entre os funcionários, só que muitos estão fazendo essa pasta de backup e o volume dela volt e meia fica grande e eu tenho que apagar na mão.
    Eu peço a ajuda de vocês para criar um script que consiga ver se o arquivo tem 7 dias e se for maior que isso apagar ele.
    Pra ficar mais claro: o script rodará todo sábado a tarde, e tudo que for mais antigo que a semana corrente seria deletado, e assim por diante.
    Agradeço a todos.
    Fábio Nascimento
    quarta-feira, 17 de junho de 2009 14:07

Respostas

  • Amigo eu utilizo um script pra apagar arquivos, no meu caso são backups antigos, porque eles são gerados diariamente... segue o script...

    set fso = createobject("scripting.filesystemobject")
    set folder = fso.getfolder("c:\backup\intranet\")  ===> Aqui você coloca o caminho onde estão os arquivos
    for each file in folder.files
     if (datediff("d",file.datecreated,now)>30) then ===> Aqui o período, nesse caso, arquivos maiores de 30 dias, atí vc altera para 7.
     file.delete
     end if
    next

    Nesse caso ele vai na pasta descrita acima e apaga tudo que tiver a sua data de criação superior à quantidade de dias que escolher, agora, tem um detalhe se existirem subpastas será necessário utilizar um outro script:

    set fso = createobject("scripting.filesystemobject")
    set pasta = fso.getfolder("c:\backup\intranet\") ===> Aqui você coloca o caminho onde estão os arquivos
    for each subp in pasta.subfolders
     if (datediff("d",file.datecreated,now)>30) then ===> Aqui o período, nesse caso, arquivos maiores de 30 dias, atí vc altera para 7.
     subp.delete()
    end if
    next

    Já nesse caso, ele vai apagar arquivos e subpastas.
    Eu recomendo vc fazer um teste, o primeiro script eu utilizo, já no segundo eu apago tudo, sem colocar condição de tempo de criação, por isso não sei se funciona direitinho.

    Salva o script com a extensão .vbs e adiciona uma tarefa no agendador de tarefas do windows, assim ele será exetudado autometicamente....

    Qualquer dúvida, às ordens...
    Gregorio
    • Marcado como Resposta Fábio-TI terça-feira, 7 de julho de 2009 14:40
    quarta-feira, 17 de junho de 2009 19:36
  • Olá,

    Fabio, verifique as permissões nas pastas...

    Você tem que ter permissão no compartilhamento e nos arquivos (leitura e gravação)

    Para você testar, crie a pasta c:\teste e copie uns arquivos e pasta lá dentro...

    Aí executa o script pra ver se te atende...

    Se atender, verifique as permissões do seu compartilhamento.

    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Fábio-TI terça-feira, 7 de julho de 2009 14:40
    segunda-feira, 22 de junho de 2009 17:37

Todas as Respostas

  • Amigo eu utilizo um script pra apagar arquivos, no meu caso são backups antigos, porque eles são gerados diariamente... segue o script...

    set fso = createobject("scripting.filesystemobject")
    set folder = fso.getfolder("c:\backup\intranet\")  ===> Aqui você coloca o caminho onde estão os arquivos
    for each file in folder.files
     if (datediff("d",file.datecreated,now)>30) then ===> Aqui o período, nesse caso, arquivos maiores de 30 dias, atí vc altera para 7.
     file.delete
     end if
    next

    Nesse caso ele vai na pasta descrita acima e apaga tudo que tiver a sua data de criação superior à quantidade de dias que escolher, agora, tem um detalhe se existirem subpastas será necessário utilizar um outro script:

    set fso = createobject("scripting.filesystemobject")
    set pasta = fso.getfolder("c:\backup\intranet\") ===> Aqui você coloca o caminho onde estão os arquivos
    for each subp in pasta.subfolders
     if (datediff("d",file.datecreated,now)>30) then ===> Aqui o período, nesse caso, arquivos maiores de 30 dias, atí vc altera para 7.
     subp.delete()
    end if
    next

    Já nesse caso, ele vai apagar arquivos e subpastas.
    Eu recomendo vc fazer um teste, o primeiro script eu utilizo, já no segundo eu apago tudo, sem colocar condição de tempo de criação, por isso não sei se funciona direitinho.

    Salva o script com a extensão .vbs e adiciona uma tarefa no agendador de tarefas do windows, assim ele será exetudado autometicamente....

    Qualquer dúvida, às ordens...
    Gregorio
    • Marcado como Resposta Fábio-TI terça-feira, 7 de julho de 2009 14:40
    quarta-feira, 17 de junho de 2009 19:36
  • Olá,

    Faça um teste com o exemplo abaixo:

    pasta = "c:\teste"

    Apagar_Arquivos pasta

    Sub Apagar_Arquivos(pasta)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    'aqui você informa o caminho da pasta

    set folder = objFSO.getFolder (Pasta)

    if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       'AQUI ELE VAI PROCURAR PASTAS E SUBPASTAS.
       Apagar_Arquivos SubFolder
      next
    end if


    for each file in folder.files
       'AQUI DEFINE A QUANTIDADE DE DIAS.
       if DateDiff("d",file.DateLastModified,now) > 7 Then
          objFSO.DeleteFile(file.path)
       End if
    next

    End sub



    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    quinta-feira, 18 de junho de 2009 20:53
  • Gregório,
    Alterei o nome da pasta, salvei em vbs mas o script não funciona, tanto manualmente quanto por agendamento, ele executa mas não faz nada.

    Jesiel,
    Também alterei o caminho da pasta, salvei mas ele ´apresentando um erro de memória insuficiente: 'objFSO.getFolder' código 800A0007 origem: erro de tempo de execução do microsoft VBScript.

    Obrigado pela ajuda.


    Fábio Nascimento
    segunda-feira, 22 de junho de 2009 17:03
  • Olá,

    Fabio, verifique as permissões nas pastas...

    Você tem que ter permissão no compartilhamento e nos arquivos (leitura e gravação)

    Para você testar, crie a pasta c:\teste e copie uns arquivos e pasta lá dentro...

    Aí executa o script pra ver se te atende...

    Se atender, verifique as permissões do seu compartilhamento.

    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Fábio-TI terça-feira, 7 de julho de 2009 14:40
    segunda-feira, 22 de junho de 2009 17:37
  • E aí Fábio, conseguiu rodar o script ?
    Gregorio
    terça-feira, 30 de junho de 2009 18:54
  • Pessoal,
    Desculpem o sumisso, é qe me empurraram outro problema de maior prioridade, sam como é né.
    Jesiel, o problema era de emissão mesmo, ao menos no meu teste funcionou quando usei credenciais de admin, espero que agora que é a vera funcione também.
    Obrigado aos dois, abraços.
    Fábio Nascimento
    terça-feira, 7 de julho de 2009 14:39
  • Fala pessoal tudo bem????

    To aproveitando um pouco o Script de Voces e já consegui adaptar um pouco para o meu uso, porem agora me surgiu um outro problema, eu preciso deletar os arquivos na pasta (essa tá OK) e nas subpastas.... Então teria que entrar em cada pasta ver se tem arquivo com mais de X dias sem uso e ai passar a faca, alguem poderia me dar uma ideia de como fazer, porque eu sei que vou ter que entrar na pasta primaria e ir entrando em cada um e executando o script de deleção... Mais como fazer isso é o grande detalhe...

    Se alguem puder me ajudar agradeço... Ah o script ajustado a minhas nescessidade está abaixo para caso alguem precise tambem.

    set fso = createobject("scripting.filesystemobject")
    Set folder = fso.getfolder("c:\maveco\")
    For each file in folder.Files
     if (datediff("d",file.DateLastModified,Now)>30) Then
        'WScript.Echo(data1)
      file.delete
     end if
    next

    Valeu e fico no aguardo do pessoal...
    Marcos R. Valente | IT Consulting / Support Tecnical. ACP - Altiris Certified Professional. MCP - MCSA + Mailing 2000/2003 Email: marcos.r.valente@gmail.com MSN: coracaovalente1971@hotmail.com
    quarta-feira, 24 de fevereiro de 2010 14:37
  • Olá,

    Faça um teste com o exemplo abaixo:

    pasta = "c:\teste"

    Apagar_Arquivos pasta

    Sub Apagar_Arquivos(pasta)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    'aqui você informa o caminho da pasta

    set folder = objFSO.getFolder (Pasta)

    if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       'AQUI ELE VAI PROCURAR PASTAS E SUBPASTAS.
       Apagar_Arquivos SubFolder
      next
    end if


    for each file in folder.files
       'AQUI DEFINE A QUANTIDADE DE DIAS.
       if DateDiff("d",file.DateLastModified,now) > 7 Then
          objFSO.DeleteFile(file.path)
       End if
    next

    End sub



    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    Jesiel,

         Como ficaria esse seu script para varrer subpastas e deletar somente os arquivos sem prejudicar a estruturas de pastas ? porque aqui na empresa preciso apagar algumas filmagens que estão distribuidas em pastas(separadas por dia), com data maior que 5 meses, gostaria de fazer isso mais que a estrutura permanecesse. Agradeço pela atenção.

    quinta-feira, 26 de maio de 2011 22:55
  • Olá,

    Faça um teste com o exemplo abaixo:

    pasta = "c:\teste"

    Apagar_Arquivos pasta

    Sub Apagar_Arquivos(pasta)

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    'aqui você informa o caminho da pasta

    set folder = objFSO.getFolder (Pasta)

    if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       'AQUI ELE VAI PROCURAR PASTAS E SUBPASTAS.
       Apagar_Arquivos SubFolder
      next
    end if


    for each file in folder.files
       'AQUI DEFINE A QUANTIDADE DE DIAS.
       if DateDiff("d",file.DateLastModified,now) > 7 Then
          objFSO.DeleteFile(file.path)
       End if
    next

    End sub



    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    Olá,

    Seu script funcionou.. Porém eu preciso que delete também as subpastas antigas... é possível adaptar?

    Obrigado!


    terça-feira, 8 de maio de 2012 13:27