Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удалить файлы у которых атрибут времени доступа больше 7д.

Ответить
Настройки темы
CMD/BAT - Удалить файлы у которых атрибут времени доступа больше 7д.

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всех приветствую, нужно удалить файлы по атрибуту последнего доступа, если файлы не были открыты больше 7 дней то удалить их например из каталога C:\123\... и всех подкаталогов.
Я нашел тут похожую тему, но из-за небольшого опыта не смог переделать под свой случай.

Отправлено: 07:31, 03-06-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6705
Благодарности: 1576

Профиль | Отправить PM | Цитировать


Powershell:
Код: Выделить весь код
dir C:\123 -File -Recurse |? lastaccesstime -lt (get-date).AddDays(-7) |del

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:37, 03-06-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


DJ Mogarych,
Спасибо вам большое, а не подскажите как через пакетный файл bat реализовать ?
Знаю, что там есть команда dir, у нее есть параметр /ta

Отправлено: 11:21, 03-06-2021 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата ryok:
через пакетный файл bat реализовать ? »
если именно запустить в окне cmd, то
Код: Выделить весь код
@powershell -noL -noP -ex Bypass "C:\My.ps1"
а если код нужен bat
Код: Выделить весь код
@echo off
cd /d "C:\papka" && >nul 2>&1 forfiles /d -7 /s /c "cmd /c del /s /q @file"
pause

Последний раз редактировалось alpap, 03-06-2021 в 12:38.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:31, 03-06-2021 | #4


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


alpap, не, /d у forfiles.exe — это дата/время последней модификации, а не доступа.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:41, 03-06-2021 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Iska, это понятно, но я думаю ТС скорее всего и не знает точно что за дата ему требуется и не сильно надежная эта дата вообще как таковая: ссылка

Отправлено: 19:10, 03-06-2021 | #6


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


alpap,
Уважаемый Iska прав, мне нужно именно по последнему доступу считать, я в 1-ом сообщении это и написал.

Отправлено: 19:28, 03-06-2021 | #7


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


ryok, Iska, alpap, похоже чистым CMD задача не решается.
Dir /B /A:-D /O:D /S /T:A
сортирует файлы по времени последнего доступа, но в переменную эту дату %%~tf не забирает, там получается дата модификации.
Можно, конечно, скомбинировать CMD и JS, но устроит ли это заказчика?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:34, 03-06-2021 | #8


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


megaloman,
а по каким именно причинам вы так посчитали, что время последнего доступа не передаётся ?
Если файл был изменен мной к примеру в 9:00, в него записался атрибут времени последней модификации 9:00 и так же у него обновился на 9:00 атрибут последнего доступа, оба параметра обычно равны друг другу, но не всегда.

Отправлено: 19:45, 03-06-2021 | #9


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


ryok,
Цитата ryok:
а по каким именно причинам вы так посчитали, что время последнего доступа не передаётся ? »
Я создал несколько файлов, у некоторых изменил атрибут - дата последнего доступа.
Проделал для них
Dir /A:-D /O:D /S /T:A "Box_In\*.*"
Убедился, что в дате отображается правильное время доступа.
Однако в Dir под For в переменную эту дату %%~tf не забирает, там получается дата модификации.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:54, 03-06-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удалить файлы у которых атрибут времени доступа больше 7д.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Надо удалить файлы у которых в названии содержится слово "автосохранение" ufooo Скриптовые языки администрирования Windows 4 20-06-2015 02:08
CMD/BAT - проверять обновился ли атрибут времени и копировать файл в директорию raa_77 Скриптовые языки администрирования Windows 1 05-07-2012 16:03
CMD/BAT - Переместить файлы в которых больше 3-х знаков препинания Gablik Скриптовые языки администрирования Windows 1 30-09-2011 06:51
CMD/BAT - [решено] Переместить файлы, в имени которых больше трех цифр. hazardhz Скриптовые языки администрирования Windows 5 14-05-2011 12:32
Мультимедиа - [решено] Проблема с mp3-файлами битрейт которых больше 300 kbps Zuboklev Программное обеспечение Windows 8 11-04-2011 10:50




 
Переход