Родительская папка наследует дочернюю подпапку или атрибуты файла без создания новой папки и копирования

0

Есть ли способ изменить время и дату папки (свойства атрибута) с помощью пакетного файла DOS, VBS, PERL или скрипта Powershell?

Пример:

ПАПКА: F1, F2, F3 ... ПОДЛОЖКА: S1, S2, S3 ... ФАЙЛЫ: L1, L2 ..... Ln

Скажем, текущее время для папок, подпапок и файлов выглядит следующим образом:

Jan-01-2000 1:00AM

Затем я добавляю новую подпапку S7со временемJan-01-2001 23:00PM

Это должно автоматически привести к тому, что у верхней папки ( F1) свойства атрибута будут скопированы из отметки времени последнего файла (или подпапки). Это означает, что F1папка должна быть Jan-01-2001 23:00PMиз, Jan-01-2000 1:00AMпотому что теперь она наследует атрибуты времени / даты S7.

Можно ли использовать VB, VBS, сценарий Powershell или пакетный файл?

C2940680
источник
Возможный? Конечно. Стоит усилий, ну, это будет зависеть от вас, и почему вы думаете, что вам нужно сделать это. Есть два метода, которые сразу приходят на ум. Во-первых, это запланированное задание, которое выполняется каждый час или около того. Задача получит все подпапки и отсортирует их по LastWriteTime. Затем он извлекает дату из самой последней и устанавливает для нее значение LastWriteTime родительской папки. Второй способ заключается в регистрации синхронизации событий WMI, которая, по сути, будет делать то же самое каждый раз, когда что-либо будет добавлено в родительскую папку.
EBGreen

Ответы:

0

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

$Path = 'c:\temp'

(Get-Item $Path).LastWriteTime = (Get-ChildItem $Path -Recurse | Sort-Object -Property LastWriteTime -Descending)[0].LastWriteTime

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

MFT
источник