BAT-файл: удалить все файлы в каталоге старше 5 дней, кроме одного файла

1211
Jvd

У меня есть каталог со многими временными файлами. Все файлы старше 5 дней могут быть удалены, кроме одного файла DoNotDelete.txt. Поэтому я должен добавить дополнительный аргумент в мой текущий скрипт:

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

Может ли кто-нибудь предоставить этот аргумент?

2

2 ответа на вопрос

0
Berend

I don't think forfiles has such an option (type 'forfiles /?'). As a workaround, you could (temporarily) set one of the system, read-only or hidden attributes on this file, e.g. attrib +h donotdelete.txt. This will prevent forfiles from deleting it.

Есть ли другой способ, чем использование оператора forfiles? VBscript? Jvd 9 лет назад 0
Да, VBScript определенно может сделать это, см. Http://msdn.microsoft.com/en-us/library/aa242706%28v=vs.60%29.aspx Berend 9 лет назад 0
Беренд, можешь мне помочь с вопросом ниже? Jvd 9 лет назад 0
0
Jvd

У меня уже есть этот VBScript для очистки этой папки. Как добавить дополнительную команду, чтобы пропустить файл «DoNotDelete.txt»? Вы можете помочь?

С уважением, 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  
Спасибо Мэтью Уильямсу и Беренд Jvd 9 лет назад 0

Похожие вопросы