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

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

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

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

4
задан user 99572 is fine
17.01.2023 1:18 Количество просмотров материала 2836
Распечатать страницу

2 ответа

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

0
отвечен Berend 2023-01-18 09:06

У меня уже есть этот 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
отвечен Jvd 2023-01-18 11:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх