Работая в Windows, каждый из вас может столкнуться с необходимостью отследить изменения в конкретной папке, причем в режиме онлайн. Для этих целей существуют специальные утилиты вроде FolderChangesView, но можно обойтись и без них, ведь то же самое умеет делать замечательный штатный инструмент PowerShell. Минус его использования разве что в некотором неудобстве и сырости кода скриптов, которые мы предлагаем вам попробовать.
Скачать оба PS1-файла можно по ссылке yadi.sk/d/t6h5bfuUb8tvtg.
Перед их использованием вам нужно будет внести в код незначительные изменения, а именно указать свой путь к папке, изменения в которой предполагается отслеживать.
Откройте файл «1Monitor.ps1» в Блокноте или интегрированной среде PowerShell ISE (она должна быть встроена в Windows) и отредактируйте значение переменной $pathtomonitor, это и есть путь к отслеживаемому каталогу.
Также вы можете отредактировать переменную $log, содержащую путь к файлу лога, в который станут заноситься изменения.
Теперь запустите скрипт, кликнув по нему ПКМ и выбрав «Выполнить с помощью PowerShell».
Поскольку по умолчанию прямой запуск PS1-скриптов в Windows запрещен, система может попросить вас изменить политику выполнения, для чего в открывшейся консоли нужно будет ввести Y и нажать ввод.
После этого начнется выполнение скрипта. Если не хотите менять политики безопасности, просто скопируйте код скрипта от начала до конца и выполните его в запущенной от имени администратора PowerShell. Результат почти тот же самый, разве что в консоли выведется код и шрифт будет помельче.
Теперь создайте для примера в отслеживаемой папке какой-нибудь файл. В консоли тут же появится уведомление о выполненной операции. Отслеживаются только основные изменения — создание/вставка, удаление и переименование.
У скрипта «1Monitor.ps1» есть недостаток – при удалении сразу нескольких файлов, он фиксирует удаление только первого из них, поэтому мы рекомендуем использовать более функциональный скрипт «2Monitor.ps1», способный к тому же показывать точное время той или иной операции.
а что же у тебя 2 скрипт не пишет лог?!
Вроде как и не должен или я что-то пропустил.
Привет!
А как сделать чтобы скрипт реагировал только на JPG?
Привет. Просто. Добавь в код фильтр $FileSystemWatcher.Filter = "*.jpg"
Вот тако: https://c.radikal.ru/c22/2104/8b/a689a6735548.png
Spasibo!
Ты человечище ))) Отличный скрипт. Супер
Применил для отслеживания появления JPG. Когда камера определяет повышенную температуру человека создается его фото вот тут я добавил чтение текста типа У вас температура оповестите начальника и звук alarm )))
Можешь не благодарить ) Скрипт не мой, я лишь немного его подправил.
А если необходимо отслеживать появление файлов в нескольких каталогах, то на каждый каталог запускать свой скрипт? или можно как-то все в одном файле реализовать?