none
Novo desafio! Peço ajuda! RRS feed

  • Pergunta

  • Olá, trabalho em uma empresa o onde o software de gerenciamento gera um backup automático, que configurei para o endereço D:\Backup_Diario\replay.bac

    O problema é que na nova versão do programa o bakup é gerado com um nome que considera a data do dia, ex. D:\Backup_Diario\replay17102008-2331.bac que acumula infinitamente arquivos na pasta.

     

    Pergunto:

    Como posso criar um bat que apague todos os arquivos inferiores ao mais novo?

    Ex. Tenho os arquivos: replay17102008-2331.bac , replay17102008-1500.bac e replay16102008-2331.bac gostaria de apagar todos os arquivos inferior ao replay17102008-2331.bac

    Acredito que como parâmetro poderia usar a data e hora da criação do arquivo, pra mim seria o ideal, já que tenho outra situações onde preciso apagar todos os arquivos inferiores ao arquivo mais novo.

     

    Fico muito agradecido a quem puder ajudar!

     

     

    sábado, 18 de outubro de 2008 14:54

Respostas

  • Wanderton,

     

    Eu peguei este daqui no technet:

     

    **********************************************

    strPasta="C:\Temp"

    set FSo = CreateObject("Scripting.FileSystemObject")

    Apagar_Arquivos(strPasta)

     

    Sub Apagar_Arquivos(Pasta)

     set folder = FSO.getFolder (Pasta)


     'Verifica se tem subpastas
     if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       Apagar_Arquivos SubFolder
      next
     end if


     for each file in folder.files
      if (dateDiff("d", file.datecreated, now) >5) then
       File.delete
      end if
     next


     if folder.Subfolders.count = 0 and folder.files.count=0 and Folder.Path<>strPasta then
      Folder.delete true
     end if

    end sub
    *********************************************

     

    No campo date:

     

     if (dateDiff("d", file.datecreated, now) >5) then

    Eu defini para apagar os arquivos que possuem datas superiores a 5 dias de criação, acho que é mais ou menos disso que vc precisa.

     

    Abraços.

     

    sexta-feira, 24 de outubro de 2008 11:49

Todas as Respostas

  •  

    Olá; Ajuda ai pessoal, to precisando muito de ajuda pra resolver mais esse desafio...

    quarta-feira, 22 de outubro de 2008 00:47
  • Wanderton,

    Estou precisando de um script que faça mais ou menos a mesma coisa. 

    Se vc puder souber de alguma solução poste pra mim....
    Farei o mesmo !!!

    Grato,
    Raphael Monetto
    quinta-feira, 23 de outubro de 2008 19:49
  • Wanderton,

     

    Eu peguei este daqui no technet:

     

    **********************************************

    strPasta="C:\Temp"

    set FSo = CreateObject("Scripting.FileSystemObject")

    Apagar_Arquivos(strPasta)

     

    Sub Apagar_Arquivos(Pasta)

     set folder = FSO.getFolder (Pasta)


     'Verifica se tem subpastas
     if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       Apagar_Arquivos SubFolder
      next
     end if


     for each file in folder.files
      if (dateDiff("d", file.datecreated, now) >5) then
       File.delete
      end if
     next


     if folder.Subfolders.count = 0 and folder.files.count=0 and Folder.Path<>strPasta then
      Folder.delete true
     end if

    end sub
    *********************************************

     

    No campo date:

     

     if (dateDiff("d", file.datecreated, now) >5) then

    Eu defini para apagar os arquivos que possuem datas superiores a 5 dias de criação, acho que é mais ou menos disso que vc precisa.

     

    Abraços.

     

    sexta-feira, 24 de outubro de 2008 11:49
  • Olá Felipe das Chagas, usei o seu script e resolveu o meu problema em parte, e que o programa que uso para o backup em FTP (Cobian) só roda script em BAT, COM ou EXE.

     

    De toda forma agradeço!

     

    quarta-feira, 29 de outubro de 2008 15:03
  • Wanderton,

     

    Por que você não cria uma bat que execute este vbs?

     

    ****************

    @echo off

     

    \\pathdoserver\script.vbs

     

    ******************

     

    Abraços.

     

    quarta-feira, 29 de outubro de 2008 20:20
  • Olá, eu fiz isso, só fiquei curioso de como poderia criar o mesmo aplicativo pra rodar diretamente como um BAT.

    Outra coisa, qual parâmetro devo usar para que alem da data eu quisesse considerar a hora?

    Ex. Arquivo criado as 16:00h do dia 29/10 e arquivo criado as 19:00h do dia 29/10

    O script deveria apagar todos os arquivos criados três horas depois do arquivo mais novo.

     

    Agradeço a ajuda!

     

    quarta-feira, 29 de outubro de 2008 20:41