web-dev-qa-db-fra.com

Comment surveiller les modifications d'un dossier et exécuter une commande si c'est le cas sous Windows?

Il y a des questions similaires pour Linux et Mac , mais je suis après une solution Windows ici.

Le problème est le suivant: Je veux écrire plusieurs fichiers de script (js) dans un dossier et demander à un programme de surveiller ce dossier pour détecter les modifications de fichier et les nouveaux fichiers ajoutés. un seul fichier).

La solution doit:

  1. Surveillez les modifications de fichiers et les nouveaux fichiers ajoutés dans un dossier.
  2. Exécutez une commande uniquement s'il y a un changement.

Il serait préférable que ce soit une solution intégrée (comme un extrait de code JScript ou VBscript) ou quelque chose qui ne nécessite pas d'installation.

31
Camilo Martin

Il existe un programme appelé Belvedere qui pourrait faire l'affaire.

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

C'est une application Windows autonome qui s'exécute en arrière-plan.

Je l'ai configuré pour contrôler dans mon dossier de téléchargement les fichiers portant certaines extensions avec les dernières dates modifiées d'un jour. Les fichiers qu'il trouve sont supprimés, mais vous pouvez le faire exécuter à la place.

3
dangowans

J'ai eu un bon succès avec un ancien programme appelé Log Monitor. C'est ancien et abandonné depuis longtemps. Mais cela sert assez bien.

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

13
Bob

J'ai créé un utilitaire simple à cette fin: https://github.com/benblamey/when_changed

usage: when_changed (chemin du fichier) (commande) (paramètres-facultatifs)

par exemple. when_changed C:\somedir\foo.txt barre d’application wibble 123

6
Ben

Avec les répertoires de suivi .NET, il est très facile de coder. Je suis sûr que quelqu'un a fait un tel programme.

Je viens de trouver ce petit bijou pour vous http://www.guidingtech.com/9861/automate-folder-actions-windows-watch-4-folder/

6
bokan

J'essaie actuellement cette application , qui nécessite .NET, mais qui semble faire l'affaire.

4
Camilo Martin

Encore un autre outil: https://github.com/yankee42/Java-file-change-watcher

Avantages: indépendant de la plate-forme (Java), petit (10 Ko).

Disclaimer: je suis l'auteur

2
yankee

Si vous souhaitez utiliser une solution intégrée à l'aide de JScript ou de VBScript, vous devez rechercher la surveillance du système de fichiers à l'aide d'abonnements d'événements WMI. En principe, vous écrivez le code pour surveiller un dossier et des actions de préforme lorsqu'un changement est détecté, tel que:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... et votre script s'exécute sur un intervalle surveillant ces événements. Il existe de nombreuses ressources, mais en voici quelques unes pour VBScript et Powershell:

2
mrTomahawk

C’est une exigence si courante que je suis surpris de constater qu’il n’ya pas d’utilitaire pratique intégré au système d’exploitation lui-même.

Quoi qu'il en soit, comme mentionné précédemment, j'ai utilisé LogMonitor avec succès dans le passé. Cependant, j'ai trouvé ce billet de blog informatif et j'utilise le dossier de suivi 4 maintenant .

J'espère que cela vous aidera.

2
Vijay

NirSoft dispose d'un logiciel permettant de contrôler les modifications de fichiers sous Windows
FolderChangesView

FolderChangesView est un outil simple qui surveille le dossier ou le lecteur de disque choisi et répertorie chaque nom de fichier en cours de modification, de création ou de suppression pendant la surveillance du dossier. Vous pouvez utiliser FolderChangesView avec n’importe quel lecteur de disque local ou avec un partage réseau distant, à condition d’obtenir une autorisation de lecture sur le dossier sélectionné.

enter image description here

vous pouvez le télécharger gratuitement de ici
Plus d'infos

1
AminM

Vous pouvez utiliser http://jnotify.sourceforge.net/ pour vous abonner aux événements de surveillance du système de fichiers spécifique au système d'exploitation. Le code a plusieurs années mais il fonctionne toujours (du moins sur Windows Server 2013r2, je le testais hier).

Il y a aussi la résurrection github du projet jnotify sur https://github.com/redbooth/jnotify qui ne propose pas d'application de démonstration autonome mais (selon les journaux de validation) corrige quelques bugs.

En Java7, il devrait y avoir une sorte de surveillance de système de fichiers similaire à inotify, mais je ne l’ai pas encore testée.

0
andrej