Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Увидеть дату последнего изменения файлов в глубине каталога

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

69desad

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собственно вопрос .
Как увидеть дату последнего изменения файлов в глубине каталога.
 
Представьте как удобно увидеть метку последней модификации в глубине каталога чтоб оперировать данными.  
 
2019 год виндовс предлагает подобную функцию но смотрит только в глубину на одно вложение .  
Что практически бесполезно.
 
Чем и как можно увидеть последнее изменения на любой глубине вложений чтоб оно отображалось в родительской папке по типу "проводник ,тотал коммандер" с обычной функцией сортировки и работы с файлами.
 
Или как увеличить глубину анализа даты последней модификации файлов  на всю глубину вложений в проводнике.  
 
Очень удобно для удаления  неиспользуемых пользовательских папок особенно если их десятки тысяч.
надеюсь простое  решение существует .

Всего записей: 84 | Зарегистр. 18-12-2006 | Отправлено: 02:03 10-06-2019
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
69desad Если стоит задача удалять файлы старее какой-то даты, то для этого не нужно видеть метку последней модификации в глубине каталога .
Юзай встроенную виндовую утилиту forfiles /?
Пример удаления файлов старее 1 января 2007 года
forfiles /P "D:\666" /M *.* /S /D -01.01.2007  /C "cmd /c del /Q /F @PATH"
если речь только о папках, то надо подумать и использовать переменную  @isdir  в этой утилите и команду удаления каталогов rmdir вместо del.
 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11724 | Зарегистр. 10-12-2003 | Отправлено: 10:03 10-06-2019 | Исправлено: ipmanyak, 10:06 10-06-2019
69desad

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Отдельные папки или файлы внутри родительских каталогов удалять не нужно .  
Нужно удалять весь каталог если давно не было изменений внутри, или ничего не удалять так как каталог ещё кем то используется.
 
А то скрипт потрёт всё что старае 2007 года во всех каталогах даже тех которые ещё кому то нужны.

Всего записей: 84 | Зарегистр. 18-12-2006 | Отправлено: 14:42 10-06-2019
69desad

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не ужели программу никто не знает или её просто нет ?

Всего записей: 84 | Зарегистр. 18-12-2006 | Отправлено: 07:55 22-06-2019
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
69desad
Два раза перечитал ваше первое сообщение, но так и не понял, что вы хотите получить. Я бы на вашем месте нарисовал небольшой кусок файлового дерева с датами и на нём объяснил общественности, что вы хотите.

----------
Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

Всего записей: 6684 | Зарегистр. 29-04-2009 | Отправлено: 10:46 22-06-2019
69desad

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
пример вхожу в каталог test в нём 3 папки test\1 ,test\2 .test\3  внутри каждой папки произвольное количество папок и файлов произвольной  глубины вложенности  
 
папка 2  создана 01.01.2019  внутри неё в глубине среди тысяч фалов и папок  лежит файл изменённый 05.05.2019  например он лежит  test\2\d\d\4\1.txt
 
нужно  видеть дату  05.05.2019  на папке 2 ,потому что внутри неё есть файл с самой новой датой  изменения  05.05.2019
 
 
В проводнике "выбор столбцов в таблице" есть параметр "дата последнего сохранения"
можно посмотреть как он работает , недостаток, этот параметр анализирует только содержимое родительской папки,а то что вложено глубже уже не анализирует .  
 
 
 

Всего записей: 84 | Зарегистр. 18-12-2006 | Отправлено: 11:40 22-06-2019
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это пара строчек в Powerscript'е:

Код:
$path = "\test\1"
$tmp = Get-ChildItem -Path $path -Recurse | Where-Object {$_.LastWriteTime -ge (Get-Date).AddDays(-365)}
if(!$tmp) {Remove-Item $path -Force -Recurse -ErrorAction SilentlyContinue}
 

Get-ChildItem рекурсивно находит все файлы в $path, которым год или меньше,
а Remove-Item удаляет директорию, если таких не нашлось.
 

Всего записей: 1525 | Зарегистр. 01-11-2004 | Отправлено: 13:04 22-06-2019
69desad

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ne_viens
спасибо,дату на папке я не увижу чтоб провести анализ ,но это на много лучше чем через поиск искать.
 
Можно немного изменить  так,чтоб скрипт анализировал указанную  папку "\test"  , а удалял вложенные в неё   test\1 ,test\2 ,или test\3
если в них нет изменённых файлов  ?

Всего записей: 84 | Зарегистр. 18-12-2006 | Отправлено: 20:47 22-06-2019
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
$root = "\test"
foreach($dir in Get-Childitem -Path $root| Where {$_.PSIsContainer})
{
    $tmp = Get-ChildItem -Path $dir.FullName -Recurse | Where-Object {!$_.PSIsContainer -and $_.LastWriteTime -ge (Get-Date).AddDays(-365)}
    if(!$tmp) {Remove-Item $dir.FullName -Force -Recurse}
}

Всего записей: 1525 | Зарегистр. 01-11-2004 | Отправлено: 21:41 22-06-2019
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, 69desad

Цитата:
FolderTimeUpdate is a simple tool for Windows that scans all files and folders under the base folder you choose, and updates the 'Modified Time' of every folder according the latest modified time of the files stored in it.

https://www.nirsoft.net/utils/folder_time_update.html

Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 22:15 22-06-2019
69desad

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большое спасибо.
То что нужно!.
ne_viens
Скрипт хорош для автоматизации буду применять .
Alex_Piggy
Программа хороша в случае если нужно произвести анализ,а потом уже удалять.
Буду пользоваться  
 

Всего записей: 84 | Зарегистр. 18-12-2006 | Отправлено: 23:03 22-06-2019
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт и для анализа можно применить, им предварительно исправляя даты папок:

Код:
$root = "\temp"
 
function SetDirLastWriteTime
{
    [datetime]$date = "1980-01-02"
 
    foreach($file in ls $args[0] -Force)
    {
        $tmp = if ($file.PSIsContainer) {SetDirLastWriteTime $file.FullName} else {$file.LastWriteTime}
        $date = if ($tmp -gt $date) {$tmp} else {$date}
    }
 
    Try
    {
        ([system.io.directoryinfo]$args[0]).LastWriteTime = $date
    }
    Catch
    {
    }
 
    $date
}
 
SetDirLastWriteTime $root | Out-Null

 
Пустым папкам будет присвоена дата 1980-01-02, остальным дата младшего вложенного файла или папки.

Всего записей: 1525 | Зарегистр. 01-11-2004 | Отправлено: 19:10 24-06-2019
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Увидеть дату последнего изменения файлов в глубине каталога


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru