![]() |
Удалить файлы у которых атрибут времени доступа больше 7д.
Всех приветствую, нужно удалить файлы по атрибуту последнего доступа, если файлы не были открыты больше 7 дней то удалить их например из каталога C:\123\... и всех подкаталогов.
Я нашел тут похожую тему, но из-за небольшого опыта не смог переделать под свой случай. |
Powershell:
Код:
dir C:\123 -File -Recurse |? lastaccesstime -lt (get-date).AddDays(-7) |del |
DJ Mogarych,
Спасибо вам большое, а не подскажите как через пакетный файл bat реализовать ? Знаю, что там есть команда dir, у нее есть параметр /ta |
Цитата:
Код:
@powershell -noL -noP -ex Bypass "C:\My.ps1" Код:
@echo off |
alpap, не, /d у forfiles.exe — это дата/время последней модификации, а не доступа.
|
Iska, это понятно, но я думаю ТС скорее всего и не знает точно что за дата ему требуется и не сильно надежная эта дата вообще как таковая: ссылка
|
alpap,
Уважаемый Iska прав, мне нужно именно по последнему доступу считать, я в 1-ом сообщении это и написал. |
ryok, Iska, alpap, похоже чистым CMD задача не решается.
Dir /B /A:-D /O:D /S /T:A сортирует файлы по времени последнего доступа, но в переменную эту дату %%~tf не забирает, там получается дата модификации. Можно, конечно, скомбинировать CMD и JS, но устроит ли это заказчика? |
megaloman,
а по каким именно причинам вы так посчитали, что время последнего доступа не передаётся ? Если файл был изменен мной к примеру в 9:00, в него записался атрибут времени последней модификации 9:00 и так же у него обновился на 9:00 атрибут последнего доступа, оба параметра обычно равны друг другу, но не всегда. |
ryok,
Цитата:
Проделал для них Dir /A:-D /O:D /S /T:A "Box_In\*.*" Убедился, что в дате отображается правильное время доступа. Однако в Dir под For в переменную эту дату %%~tf не забирает, там получается дата модификации. |
Цитата:
Цитата:
видел в одном месте пробовали чуть по другому, вывод такого dir направить на findstr Код:
dir file /ta|findstr /c:"file" |
Цитата:
|
Время: 02:20. |
Время: 02:20.
© OSzone.net 2001-