Як слідкувати за зміною папки та виконувати команду, якщо вона є, у Windows?


32

Існують подібні питання до Linux та Mac , але я тут після рішення Windows.

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

Рішення має:

  1. Відстежуйте зміни файлів та додавання нових файлів у папці.
  2. Виконайте команду, лише якщо є якісь зміни.

Найкраще, якщо це буде вбудоване рішення (наприклад, фрагмент JScript або VBscript), або щось, що не потребує встановлення.


перегляньте цей блог для деяких програм для Windows.
Віджай

Відповіді:


3

Існує програма під назвою Belvedere, яка могла б зробити трюк.

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

Це окрема програма Windows, яка працює у фоновому режимі.

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


Нічого собі - це виглядає дуже приємно. Я виберу це як відповідь (навіть якщо я вже отримав те, що мені потрібно від іншого), оскільки це, ймовірно, набагато корисніше та більш універсальне, ніж те, що я використовую, для інших людей (і, можливо, мені в майбутньому!) . +1 та прийнято!
Каміло Мартін

2
Белведере змусив мене втрачати години, щоб, врешті-решт, зрозуміти, що він повний невирішених помилок , особливо з користувацькими командами. Спробуйте замість цього FolderMonitor (та використовуйте "{0}{1}"в полі параметрів, включаючи лапки). Єдине питання: ви не можете визначити окрему команду для кожної папки. Всього лише в усьому світі.
fregante

@ bfred.it У Бельведера є свої проблеми, але він працював на мене. FolderMonitor також виглядає як хороше рішення. Я думаю , що це один користувач задає питання в кінцевому підсумку з .
dangowans

13

Я мав добрий успіх зі старою програмою під назвою Log Monitor. Це давнє, і давно занедбане. Але він досить добре виконує мету.

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


1
Ах, дякую. Зараз я пробую ще одну утиліту , але +1!
Каміло Мартін

ця дивовижна "річ" прекрасно працює на Windows 10!
mboullouz

7

Я створив для цього просту утиліту: https://github.com/benblamey/when_changed

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

наприклад, коли_змінено C: \ somedir \ foo.txt myapp.exe bar wibble 123


Мені подобається, як це елегантний API. Чи підтримує папки рекурсивно?
Каміло Мартін

Так: When_changed C: \ **. Txt foo.exe Я хотів, щоб версія windows не була депонованою github.com/joh/when-changed .
Бен

6

За допомогою годинникових папок .NET це дуже легко кодувати. Я впевнений, що хтось зробив таку програму.

Щойно знайшов цей дорогоцінний камінь для вас http://www.guidingtech.com/9861/automate-folder-action-windows-watch-4-folder/


Я знаю, як легко кодувати це в .NET - я просто не хотів. Але я пробую цей, який є безкоштовним, може просто працювати теж! +1 за рекомендацію, що теж здається приємним.
Каміло Мартін


2

Це така загальна вимога, що я здивований, що в самій ОС немає зручної утиліти.

У будь-якому випадку, як було сказано раніше, я використовував успішно LogMonitor . Однак я знайшов цю публікацію в блозі інформативною і зараз використовую папку Watch 4 .

Сподіваємось, це вам допоможе.


+1, але я б не сказав, що це "загальна вимога" для всіх, окрім нас, розробників ... І з цього приводу є системні виклики для моніторингу файлової системи, так що я вважаю, що "інтеграція в ОС" я думаю.
Каміло Мартін

1
Ну, я бачив це з точки зору акцій бізнесу та мережі. Ви завжди хочете знати, хто винен, коли файли пропали: P. Мені зараз в середині діагностувати таку ситуацію: /
Vijay


2

Якщо ви хочете зробити вбудоване рішення за допомогою JScript або VBScript, тоді ви хочете шукати моніторинг файлової системи за допомогою передплати подій WMI. В основному ви пишете код для моніторингу папки та виконання попередніх дій при виявленні змін, таких як:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... і ваш сценарій працює з інтервалом, спостерігаючи за тим, як ці події відбудуться. Ресурсів багато, але ось деякі для VBScript та Powershell:


1

NirSoft має програмне забезпечення для зміни моніторних файлів у Windows
FolderChangesView

FolderChangesView - це простий інструмент, який здійснює моніторинг вибраної вами папки чи диска та перелічує кожне ім’я файлу, яке змінюється, створюється чи видаляється під час моніторингу папки. Ви можете використовувати FolderChangesView з будь-яким локальним дисковим накопичувачем або з віддаленою мережею, доки ви прочитали дозвіл на вибрану папку.

введіть тут опис зображення

ви можете завантажити його безкоштовно звідси.
Детальніше


Здається, більш інформаційним / налагоджувальним інструментом, ніж автоматичним, але все ж цікавим.
Каміло Мартін

0

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

Також на сайті https://github.com/redbooth/jnotify є відновлення програми github від jnotify, яке не пропонує окрему демонстраційну програму, але (згідно з журналами фіксації) виправляє деякі помилки.

У java7 також має бути якийсь перегляд файлової системи, який нагадує інотифікувати, але я ще не тестував його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.