Создайте в Win 7 папку, в которой файлы будут автоматически удаляться через указанный период

329
Mihai

Я хотел бы иметь папку для размещения предметов для временного использования, и через определенное время они будут удалены

Возможно ли это в Windows 7?

У меня есть, может быть, какой-то .batфайл при запуске? Но я бы предпочел сделать это без перезагрузки.

Можно ли запланировать задачу для достижения желаемого эффекта?

0
Использование cronjob или запланированной задачи (в мире Windows) решит проблему, не будучи зависимым ни от каких запусков или входов в систему. Достаточен ли вам возраст одного файла для автоматического удаления всей папки? pabouk 10 лет назад 0
@pabouk Конечно, до тех пор, пока он создается, то есть, когда я перемещаю его в соответствующую папку. Сейчас я работаю с wmz-решением, и оно работает только с учетом даты изменения. Mihai 10 лет назад 0

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

3
wmz

You could use forfiles to enumerate and process files not modified longer than (or since date), for example (as shown on linked MS page - this would simply list them)

forfiles /s /m *.* /d -365 /c "cmd /c echo @file is at least one year old."

After you've verified it works as you'd want it to, put it in a batch file and schedule using Task Scheduler (or use schtasks if you prefer command line).

[Edit]

If creation date (not modification) date is required, I would resort to powershell: This one liner gets and prints all files created earlier that 365 days.
Please note it does not strip times from dates (so comparison takes not only date, but also time of creation and time when it runs)!

powershell -command "gci |? {$_.CreationTime -lt (get-date).addDays(-365)} |% "

To delete instead of list, replace write with del
To strip time from dates, use (get-date).date You may also want to exclude folders from processing

Как я могу удалить файлы, основанные на дате создания, а не на дате изменения? Хотя в большинстве случаев они будут одинаковыми. Mihai 10 лет назад 0
@Mihai То, что вы хотите (и арифметика даты и времени) довольно сложно / проблематично в чистом пакетном режиме / cmd. Хотя это возможно, я бы использовал для этого PowerShell. Смотрите мое обновление. wmz 10 лет назад 0

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