Come monitorare una cartella per le modifiche ed eseguire un comando se lo fa, su Windows?


32

Ci sono domande simili per Linux e Mac , ma sto cercando una soluzione Windows qui.

Il problema è il seguente: voglio scrivere diversi file di script (js) in una cartella e avere un programma che monitora quella cartella per le modifiche ai file e l'aggiunta di nuovi file ed eseguire un comando ogni volta che ciò accade (per compilarli tutti in uno file singolo).

La soluzione deve:

  1. Monitora le modifiche ai file e i nuovi file aggiunti in una cartella.
  2. Esegui un comando solo in caso di modifiche.

Sarebbe meglio se fosse una soluzione integrata (come uno snippet JScript o VBscript) o qualcosa che non richiede installazione.


consulta questo blog per alcune app per Windows.
Vijay,

Risposte:


3

C'è un programma chiamato Belvedere che potrebbe fare il trucco.

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

È un'app Windows indipendente che funziona in background.

L'ho impostato per monitorare la cartella dei miei download per i file con determinate estensioni con le ultime date modificate di un giorno fa. I file che trova, vengono eliminati, tuttavia è possibile che venga eseguita un'azione.


Wow - quello sembra molto bello. Lo sceglierò come risposta (anche se ho già ottenuto ciò di cui avevo bisogno da un altro) poiché probabilmente è molto più utile e versatile di quello che sto usando, per altre persone (e forse io in futuro!) . +1 e accettato!
Camilo Martin,

2
Belvedere mi ha fatto perdere ore per capire alla fine che è pieno di bug irrisolti , specialmente con comandi personalizzati. Prova invece FolderMonitor (e usa "{0}{1}"nel campo dei parametri, comprese le virgolette). Unico problema: non è possibile definire un comando separato per ogni cartella. Solo uno, a livello globale.
fregante

@ bfred.it Belvedere ha i suoi problemi, ma ha funzionato per me. Anche FolderMonitor sembra una buona soluzione. Penso che sia quello che l'utente pone la domanda si è conclusa con .
dangowans,





2

Questo è un requisito così comune che sono sorpreso che non vi sia alcuna utilità conveniente integrata nel sistema operativo stesso.

Comunque, come detto in precedenza, ho usato LogMonitor con successo in passato. Comunque ho trovato questo post sul blog informativo e sto usando Watch 4 Folder ora.

Spero che questo ti aiuti.


+1, ma non direi che è un "requisito comune" per chiunque tranne noi sviluppatori ... E del resto, ci sono chiamate di sistema per monitorare il file system, quindi immagino che sia considerata "integrazione del sistema operativo".
Camilo Martin,

1
Beh, lo vedevo dal punto di vista delle imprese e della condivisione di rete. Vuoi sempre sapere a chi dare la colpa quando un file scompare: P. Sono nel bel mezzo della diagnosi di una situazione del genere in questo momento: /
Vijay


2

Se si desidera creare una soluzione integrata utilizzando JScript o VBScript, ciò che si desidera cercare è il monitoraggio del file system utilizzando le sottoscrizioni di eventi WMI. Fondamentalmente si scrive il codice per monitorare una cartella e preformare le azioni quando viene rilevata una modifica come:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... e il tuo script viene eseguito su un intervallo a guardare questi eventi. Ci sono molte risorse, ma qui ce ne sono alcune per VBScript e Powershell:


1

NirSoft ha un software per monitorare le modifiche dei file su Windows
FolderChangesView

FolderChangesView è un semplice strumento che monitora la cartella o l'unità disco selezionata e elenca tutti i nomi di file che vengono modificati, creati o eliminati mentre la cartella viene monitorata. È possibile utilizzare FolderChangesView con qualsiasi unità disco locale o con una condivisione di rete remota, purché si disponga dell'autorizzazione di lettura per la cartella selezionata.

inserisci qui la descrizione dell'immagine

puoi scaricarlo gratuitamente da qui
Altre info


Sembra più uno strumento informativo / di debug che uno di automazione, ma comunque interessante.
Camilo Martin,

0

È possibile utilizzare http://jnotify.sourceforge.net/ che si iscrive a eventi di monitoraggio del filesystem specifici del sistema operativo. Il codice ha anni ma funziona ancora (almeno su Windows Server 2013r2 lo stavo testando ieri).

C'è anche la resurrezione di github del progetto jnotify su https://github.com/redbooth/jnotify che non offre un'app demo standalone ma (secondo i log di commit) corregge alcuni bug.

In java7 dovrebbe esserci anche una sorta di controllo del filesystem simile a inotify, ma non lo stavo ancora testando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.