2

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

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

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

2 ответа2

0

У меня уже есть этот 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 
0

Я не думаю, что у forfiles есть такая опция (типа 'forfiles /?«). В качестве обходного пути вы можете (временно) установить в этом файле один из системных, доступных только для чтения или скрытых атрибутов, например, attrib +h donotdelete.txt . Это предотвратит удаление файлов forfiles.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .