Как удалить все изображения в папке, сделанные в определенное время с помощью Powershell - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь удалить все изображения в папке, сделанные с 20:00 до 7:00 с помощью Powershell, но у меня возникают проблемы. К сожалению, информация на изображениях не имеет правильной даты изменения / даты создания, но правильное время хранится в метаданных изображения как Date Taken.

Я пробовал это

get-ChildItem *jpg | Where-Object{$_.LastWriteTime.TimeOfDay.Hours -gt 20 -or $_.LastWriteTime.TimeOfDay.Hours -lt 07} |Remove-Item

Но это удаляет все, потому что время записи для всех изображений - 11 часов вечера. (дата съемки для изображений отличается)

Мне нужно отсортировать около 3000 изображений. Я новичок в PowerShell, но похоже, что он должен работать. Я также могу использовать Python, если люди думают, что это проще ...

Ответы [ 2 ]

0 голосов
/ 16 июля 2020

В итоге я нашел другой код, который присваивает Date Taken свойству Date Created. Итак, я мог запустить исходный код, который я опубликовал. Мне действительно не нужно ничего эффективного, так что работа выполнена.

Установить EXIF ​​DateTaken как файл CreationTime

0 голосов
/ 14 июля 2020

Вам необходимо прочитать данные EXIF ​​(метаданные) внутри каждого файла изображения. Get-ChildItem будет возвращать только свойства самого файла, а не какие-либо метаданные внутри файла.

Ознакомьтесь с этой статьей Microsoft, описывающей процесс использования COM-объекта для раскрытия полей EXIF ​​файла. изображение (включая Date Taken). Это решение требует функции PowerShell в галерее te chnet для фактического получения данных EXIF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...