Arquivo BAT: Apaga todos os arquivos no diretório com mais de 5 dias, exceto um arquivo

2

Eu tenho um diretório com muitos arquivos temporários. Todos os arquivos com mais de 5 dias podem ser excluídos, exceto um arquivo 'DoNotDelete.txt'. Portanto, devo adicionar um argumento extra ao meu script atual:

 forfiles /p "D:\tmp" /s /d -5 /c "cmd /c del @file : date >= 5 days >NUL"

Alguém pode fornecer esse argumento?

    
por Jvd 25.08.2014 / 17:05

2 respostas

0

Já tenho este VBScript para limpar esta pasta. Como posso adicionar o comando extra para pular o arquivo 'DoNotDelete.txt'? Você pode ajudar?

Atenciosamente, JvD

Dim fso, startFolder, OlderThanDate 
Set fso = CreateObject("Scripting.FileSystemObject")
startFolder = "D:\tmp"           ' folder to start deleting (subfolders will also be cleaned)
OlderThanDate = DateAdd("d", -04, Date)  ' 04 days (adjust as necessary) 
DeleteOldFiles startFolder, OlderThanDate 
Function DeleteOldFiles(folderName, BeforeDate)
Dim folder, file, fileCollection, folderCollection
Set folder = fso.GetFolder(folderName)
Set fileCollection = folder.Files
For Each file In fileCollection

If file.DateLastModified < BeforeDate And StrComp(file.name,'donotdelete.txt', vbTextCompare) <> 0 Then
fso.DeleteFile(file.Path)
End If 
    
por 27.08.2014 / 09:58
0

Eu não acho que os arquivos tenham essa opção (digite 'forfiles /?'). Como solução alternativa, você pode (temporariamente) definir um dos atributos do sistema, somente leitura ou ocultos nesse arquivo, por exemplo, %código%. Isso impedirá que arquivos sejam excluídos.

    
por 25.08.2014 / 17:19