31

Есть аналогичные вопросы для Linux и Mac, но я здесь после решения Windows.

Проблема заключается в следующем: я хочу записать несколько (js) файлов сценариев в папку и иметь программный монитор, который проверяет эту папку на предмет изменений файлов и добавления новых файлов, и запускать команду всякий раз, когда это происходит (чтобы собрать их все в один) отдельный файл).

Решение должно:

  1. Отслеживайте как изменения файлов, так и добавление новых файлов в папку.
  2. Запускайте команду, только если есть какие-либо изменения.

Было бы лучше, если бы это было либо встроенное решение (например, фрагмент JScript или VBscript), либо что-то, что не требует установки.

10 ответов10

13

У меня был хороший успех со старой программой под названием Log Monitor. Это древнее и давно заброшенное. Но это служит цели довольно хорошо.

http://www.freeware-guide.com/download/index2.html

6

Для этого я создал простую утилиту:https://github.com/benblamey/when_changed

использование: when_changed (путь к файлу) (команда) (необязательные параметры)

например, когда C_ \somedir \foo.txt myapp.exe бар колебание 123

6

С папками наблюдения .NET это действительно легко кодировать. Я уверен, что кто-то сделал такую программу.

Просто нашел этот камень для вас http://www.guidingtech.com/9861/automate-folder-actions-windows-watch-4-folder/

4

В настоящее время я пытаюсь это приложение, которое требует .NET, но похоже, что оно делает свою работу.

3

Есть программа под названием Belvedere, которая может помочь.

http://ca.lifehacker.com/341950/belvedere-automates-your-self+cleaning-pc

Это отдельное приложение для Windows, которое работает в фоновом режиме.

Я настроил его, чтобы отслеживать мою папку загрузок для файлов с определенными расширениями с последними модифицированными датами дня назад. Файлы, которые он находит, он удаляет, однако вы можете вместо этого запустить действие.

2

Еще один инструмент: https://github.com/yankee42/java-file-change-watcher

Преимущества: независимость от платформы (Java), небольшая (10 КБ).

Отказ от ответственности: я автор

2

Если вы хотите создать встроенное решение с использованием JScript или VBScript, то вам нужно искать мониторинг файловой системы с использованием подписок на события WMI. По сути, вы пишете код для мониторинга папки и выполнения действий при обнаружении изменений, таких как:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... и ваш сценарий выполняется с интервалом, отслеживая эти события. Есть много ресурсов, но вот некоторые для VBScript и Powershell:

2

Это настолько распространенное требование, что я удивлен, что в самой ОС нет встроенной удобной утилиты.

В любом случае, как упоминалось ранее, я успешно использовал LogMonitor в прошлом. Однако я нашел этот пост информативным и сейчас использую Watch 4 Folder .

Надеюсь, это поможет вам.

1

NirSoft имеет программное обеспечение для отслеживания изменений файлов в Windows
FolderChangesView

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

Вы можете скачать его бесплатно здесь
Больше информации

0

Вы можете использовать http://jnotify.sourceforge.net/, который подписывается на специфические для os события мониторинга файловой системы. Коду уже несколько лет, но он все еще работает (по крайней мере, на Windows Server 2013r2 я тестировал его вчера).

Существует также github воскрешение проекта jnotify на https://github.com/redbooth/jnotify, которое не предлагает отдельное демонстрационное приложение, но (согласно журналам фиксации) исправляет некоторые ошибки.

В java7 должны быть какие-то inotify-подобные наблюдения за файловой системой, но я еще не тестировал их.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .