Jak monitorować folder pod kątem zmian i wykonać polecenie, jeśli tak się dzieje, w systemie Windows?


32

Podobne pytania dotyczą systemu Linux i Mac , ale szukam rozwiązania dla systemu Windows.

Problem jest następujący: chcę napisać kilka plików skryptów (js) w folderze i zlecić programowi monitorowanie tego folderu pod kątem zmian plików i dodawania nowych plików oraz uruchamianie polecenia za każdym razem, gdy to nastąpi (aby skompilować je wszystkie w jeden pojedynczy plik).

Rozwiązanie musi:

  1. Monitoruj zarówno zmiany plików, jak i dodawane nowe pliki, w folderze.
  2. Uruchom komendę tylko w przypadku zmiany.

Najlepiej byłoby, gdyby było to wbudowane rozwiązanie (takie jak fragment kodu JScript lub VBscript) lub coś, co nie wymaga instalacji.


zobacz ten blog dla niektórych aplikacji dla systemu Windows.
Vijay,

Odpowiedzi:


3

Istnieje program o nazwie Belvedere, który może załatwić sprawę.

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

Jest to samodzielna aplikacja Windows, która działa w tle.

Skonfigurowałem go do monitorowania folderu pobrań pod kątem plików z określonymi rozszerzeniami z datami ostatniej modyfikacji jednego dnia. Pliki, które znajdzie, zostaną usunięte, ale zamiast tego możesz uruchomić akcję.


Wow - ten wygląda bardzo ładnie. Wybiorę to jako odpowiedź (nawet jeśli już dostałem to, czego potrzebowałem od innej), ponieważ prawdopodobnie jest to o wiele bardziej przydatne i wszechstronne niż to, którego używam, dla innych ludzi (a może mnie w przyszłości!) . +1 i zaakceptowano!
Camilo Martin

2
Belvedere sprawiło, że straciłem wiele godzin, aby w końcu odkryć, że jest pełen nierozwiązanych błędów , zwłaszcza z niestandardowymi poleceniami. Wypróbuj zamiast tego FolderMonitor (i użyj "{0}{1}"w polu parametru, w tym w cudzysłowach). Jedyny problem: nie można zdefiniować osobnego polecenia dla każdego folderu. Tylko jeden na całym świecie.
fregante

@ bfred.it Belvedere ma swoje problemy, ale zadziałało dla mnie. FolderMonitor też wygląda na dobre rozwiązanie. Myślę, że to ten, z którym użytkownik zadał pytanie, zakończył się .
dangowans





2

Jest to tak powszechny wymóg, że jestem zaskoczony, że nie ma wygodnego narzędzia wbudowanego w sam system operacyjny.

W każdym razie, jak wspomniano wcześniej, z powodzeniem korzystałem z LogMonitora . Znalazłem jednak ten post na blogu i używam teraz Watch 4 Folder .

Mam nadzieję, że to ci pomoże.


+1, ale nie powiedziałbym, że jest to „wspólny wymóg” dla kogokolwiek poza nami, programistami ... I w tym przypadku istnieją systemowe wywołania do monitorowania systemu plików, więc liczy się to jako „integracja systemu operacyjnego”.
Camilo Martin

1
Widziałem to z perspektywy firm i udziałów sieciowych. Zawsze chcesz wiedzieć, kogo winić za brakujące pliki: P. Jestem właśnie w trakcie diagnozowania takiej sytuacji: /
Vijay


2

Jeśli chcesz zrobić wbudowane rozwiązanie za pomocą JScript lub VBScript, to czego szukasz, to monitorowanie systemu plików za pomocą subskrypcji zdarzeń WMI. Zasadniczo piszesz kod, aby monitorować folder i wykonywać akcje wstępne po wykryciu zmiany, takie jak:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... a skrypt działa w odstępach czasu, obserwując wystąpienie tych zdarzeń. Istnieje wiele zasobów, ale oto niektóre z VBScript i Powershell:


1

NirSoft posiada oprogramowanie do monitorowania zmian plików w Windows
FolderChangesView

FolderChangesView to proste narzędzie, które monitoruje wybrany folder lub dysk twardy i wyświetla listę wszystkich nazw plików, które są modyfikowane, tworzone lub usuwane podczas monitorowania folderu. Możesz używać FolderChangesView z dowolnym lokalnym dyskiem lub ze zdalnym udziałem sieciowym, o ile masz uprawnienia do odczytu wybranego folderu.

wprowadź opis zdjęcia tutaj

możesz go pobrać za darmo tutaj
Więcej informacji


Wydaje się bardziej narzędziem informacyjnym / debugującym niż narzędziem do automatyzacji, ale nadal jest interesujące.
Camilo Martin

0

Możesz użyć http://jnotify.sourceforge.net/ który subskrybuje zdarzenia monitorowania systemu plików specyficzne dla systemu operacyjnego. Kod ma wiele lat, ale nadal działa (przynajmniej na Windows Server 2013r2 testowałem go wczoraj).

Istnieje również github wskrzeszenie projektu jnotify na https://github.com/redbooth/jnotify który nie oferuje samodzielnej aplikacji demonstracyjnej, ale (zgodnie pewne błędy.

W java7 powinien być też pewien rodzaj systemu plików typu inotify, ale jeszcze go nie testowałem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.