Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удаление старых файлов-папок по дате изменения (change time)

Ответить
Настройки темы
Любой язык - [решено] Удаление старых файлов-папок по дате изменения (change time)

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


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

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


Приветствую. Долго рылся в поисках решения, но в итоге потерпел фиаско.

Суть проблемы. Есть временная папка, куда сбрасывается разный хлам. Нужно рекурсивно удалять старые файлы/папки, например старше 30 дней. Таких скриптов-программ полно.
Проблема в том, что если извлечь файл из архива, дата создания-изменения-открытия выставляются из архива. Единственная дата, на которую можно ориентироваться, называется "Время изменения" (Change Time). В стандартном проводнике она не выводится, тем не менее, посмотреть её можно, например в фаре:
Скрытый текст

Как видно, первые три даты в прошлом, и только последняя отражает текущее время создания файла. Поскольку я довольно часто работаю с архивами, удаление мусора внезапно стало проблемой.

Перерыл кучу скриптов.
Forfiles.exe работает не с той датой. PowerShell, похоже, умеет только вот эти даты, и это первые три даты со скрина. Попробовал даже линуксовый find из cygwin, но он видимо вообще не умеет работать с NTFS датами файлов.

Подскажите, как можно работать с такой датой?

Отправлено: 17:21, 08-01-2019

 

Аватара для YuS_2

Crazy


Contributor


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

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


Цитата badman:
В стандартном проводнике она не выводится »
Почему не выводится?

Цитата badman:
Как видно »
А вот не видно... ничего.
Цитата badman:
Forfiles.exe работает не с той датой. »
С какой не той?
Цитата badman:
PowerShell, похоже, умеет только вот эти даты »
Powershel легко работает с такими датами:
Код: Выделить весь код
CreationTime,CreationTimeUtc,LastAccessTime,LastAccessTimeUtc,LastWriteTime,LastWriteTimeUtc
Цитата badman:
работать с такой датой? »
С такой - это с какой именно?

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 08-01-2019 в 18:13.


Отправлено: 18:02, 08-01-2019 | #2



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

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


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


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

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


Цитата YuS_2:
Почему не выводится? »
Повторюсь, именно последняя дата со скрина фара не выводится нигде, я всё проклацал
Вот тот же файл в проводнике

Как видите, нигде нет 08.01.2019

Цитата YuS_2:
Powershel легко работает с такими датами: »
Даты там всего 3 и они не отображают нужную, я проверил. *Utc не считаются, это просто время с часовым поясом UTC0

Код: Выделить весь код
$_.Name + "`t`t" + $_.CreationTime + "`t" + $_.LastWriteTime + "`t" + $_.LastAccessTime
Цитата YuS_2:
С такой - это с какой именно? »
Первый пост, скрин, "Время изменения"

Отправлено: 18:36, 08-01-2019 | #3


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата badman:
Вот тот же файл в проводнике »
Цитата badman:
Как видите »
Говорю же, ничего не видно, у этого хостинга левый сертификат, браузер отказывается отображать с него картинки

Цитата badman:
Даты там всего 3 и они не отображают нужную, я проверил. »
плохо проверялось...

А удалить файлы по параметру времени последнего изменения:
Код: Выделить весь код
$fld = 'd:\путь к временному каталогу'
dir -lit $fld -rec -file|?{$_.lastwritetime -lt (get-date).adddays(-30)}|del -force -rec
а вот каталоги... можно, конечно и их рекурсивно удалять, но тут может возникнуть противоречие: у каталога дата изменения старше 30 дней, а вот у файлов находящихся в нем, дата может быть и свежее. Поэтому каталоги лучше удалять после чистки файлов и только пустые:
Код: Выделить весь код
dir -lit $fld -dir -rec -force|?{(dir -lit $_.fullname -file -rec).length -eq 0}|del -rec -force
- эту строку надо добавить к скрипту удаления файлов...

-------
scio me nihil scire. Ѫ


Отправлено: 18:40, 08-01-2019 | #4


Ветеран


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

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


Цитата YuS_2:
у этого хостинга левый сертификат »
нормальный там сертификат
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:30, 08-01-2019 | #5


Ветеран


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

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


Цитата badman:
Подскажите, как можно работать с такой датой? »
Стандартными средствами — не особо. Это не WinAPI, это NativeAPI: Свойства файла: Change time - forum.farmanager.com, NtQueryInformationFile function - Windows driver | Microsoft Docs_FILE_BASIC_INFORMATION - Windows driver | Microsoft Docs.

Цитата YuS_2:
А вот не видно... ничего. »
У меня под Pale Moon видно. Там редирект ссылки файла изображения на облачное хранилище происходит.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:18, 09-01-2019 | #6


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Busla:
нормальный там сертификат »
Цитата Iska:
Там редирект ссылки файла изображения на облачное хранилище происходит. »
Пояснения
Особо не разбирался... но FF выдал:
Цитата:
Ошибка при установлении защищённого соединения

При соединении с monosnap.com произошла ошибка. Узел получил действительный сертификат, но в доступе было отказано. Код ошибки: SSL_ERROR_ACCESS_DENIED_ALERT

Страница, которую вы пытаетесь просмотреть, не может быть отображена, так как достоверность полученных данных не может быть проверена.
Пожалуйста, свяжитесь с владельцами веб-сайта и проинформируйте их об этой проблеме.
Maxthon :
Цитата:
Недействительный сертификат

Сертификат этого сайта истёк или был выпущен для другого адреса.
Это может указывать на попытку перехвата данных между вами и удаленным сервером.
Проверьте, является ли URL в адресной строке правильным.

Код ошибки 117 (net::ERR_BAD_SSL_CLIENT_AUTH_CERT)
Мне этого хватило, чтобы плюнуть на тот хостинг...
Если бы проблема была у меня, мне, возможно, было бы интересно разобраться в возникающих ошибках, а так...

-------
scio me nihil scire. Ѫ


Отправлено: 07:26, 09-01-2019 | #7


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Iska:
Стандартными средствами — не особо. »
Кстати, если очень хочется именно changetime (хотя, лично я, не представляю зачем оно вообще нужно), для powershell есть модуль, от имени админа:
Код: Выделить весь код
install-module psbasicinfo
затем:
Код: Выделить весь код
(gi filename.ext|get-itembasicinfo).changetime
всё...

-------
scio me nihil scire. Ѫ

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

Отправлено: 10:34, 09-01-2019 | #8


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


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

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


Цитата YuS_2:
для powershell есть модуль, от имени админа:
install-module psbasicinfo »
что это за команда? не работает...

Отправлено: 11:20, 09-01-2019 | #9


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата badman:
что это за команда? »
Код: Выделить весь код
man install-module -full
Цитата badman:
не работает... »
А это работает:
Код: Выделить весь код
find-module psbasicinfo
?

-------
scio me nihil scire. Ѫ


Отправлено: 12:06, 09-01-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удаление старых файлов-папок по дате изменения (change time)

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление старых файлов/папок если их кол-во больше n greenOwl Скриптовые языки администрирования Windows 35 14-01-2023 08:34
CMD/BAT - Архивирование файлов по дате изменения GODolubOFF Скриптовые языки администрирования Windows 7 15-04-2015 20:22
CMD/BAT - [решено] Удаление старых файлов по дате и имени, если их больше n NinjaScript Скриптовые языки администрирования Windows 2 04-03-2015 14:27
CMD/BAT - [решено] Удаление старых файлов по дате (маске) cons74 Скриптовые языки администрирования Windows 2 23-06-2014 08:00
VBS/WSH/JS - [решено] Удаление старых файлов и папок Ua-life Скриптовые языки администрирования Windows 6 05-06-2014 16:45




 
Переход