Usuário com melhor resposta
Novo desafio! Peço ajuda!

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!
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 ifend 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.
- Marcado como Resposta Fábio JrModerator quarta-feira, 14 de março de 2012 19:27
Todas as Respostas
-
-
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 -
Veja se isso pode te ajudar:
http://forums.microsoft.com/technet-br/ShowPost.aspx?PostID=1327184&SiteID=29 -
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 ifend 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.
- Marcado como Resposta Fábio JrModerator quarta-feira, 14 de março de 2012 19:27
-
-
Wanderton,
Por que você não cria uma bat que execute este vbs?
****************
@echo off
******************
Abraços.
-
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!