Como monitorar uma pasta para mudanças e executar um comando, se o fizer, no Windows?

31

Há perguntas semelhantes para Linux e Mac , mas depois de um Solução do Windows aqui.

O problema é o seguinte: Eu quero escrever vários arquivos de script (js) em uma pasta, e ter um programa monitorar essa pasta para alterações de arquivos e novos arquivos sendo adicionados, e executar um comando sempre que isso acontecer (para compilá-los tudo em um único arquivo).

A solução tem que:

  1. Monitore alterações de arquivos e novos arquivos adicionados em uma pasta.
  2. Execute um comando somente se houver alguma alteração.

Seria melhor se fosse uma solução interna (como um snippet JScript ou VBscript) ou algo que não requer instalação.

    
por Camilo Martin 31.08.2012 / 16:36

10 respostas

3

Existe um programa chamado Belvedere que pode fazer o truque.

link

É um aplicativo Windows independente executado em segundo plano.

Configurei para monitorar minha pasta de downloads de arquivos com determinadas extensões com as datas da última modificação de um dia. Os arquivos que encontrar, serão excluídos, mas você pode fazer com que ele execute uma ação.

    
por 31.08.2012 / 17:02
13

Eu tive um bom sucesso com um programa antigo chamado Log Monitor. É antigo e há muito tempo abandonado. Mas serve muito bem ao propósito.

link

    
por 31.08.2012 / 16:54
6

Com watchfolders .NET, é muito fácil codificar. Tenho certeza de que alguém fez esse programa.

Acabei de encontrar esta joia para você link

    
por 31.08.2012 / 16:58
6

Eu criei um utilitário simples para essa finalidade: link

uso: when_changed (caminho do arquivo) (comando) (opcional-parameters)

por exemplo. when_changed C: \ somedir \ foo.txt minhaapp.exe bar wibble 123

    
por 11.07.2014 / 15:21
4

Atualmente estou tentando este aplicativo , que requer o .NET, mas parece que funciona.

    
por 31.08.2012 / 17:03
2

Esse é um requisito tão comum que me surpreende que não haja um utilitário conveniente incorporado ao próprio sistema operacional.

De qualquer forma, como mencionei anteriormente, usei LogMonitor com sucesso no passado. No entanto eu encontrei este post do blog informativo e estou usando Assista à pasta 4 agora.

Espero que isso ajude você.

    
por 04.09.2014 / 11:27
2

Mais uma ferramenta: link

Vantagens: Plataforma independente (Java), pequena (10KB).

Disclaimer: Eu sou o autor

    
por 02.03.2015 / 15:24
2

Se você quiser fazer uma solução interna usando JScript ou VBScript, o que você deseja procurar é o monitoramento do sistema de arquivos usando assinaturas de eventos do WMI. Basicamente, você escreve o código para monitorar uma pasta e pré-forma as ações quando uma alteração é detectada, como:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... e seu script é executado em um intervalo, observando a ocorrência desses eventos. Existem muitos recursos, mas aqui estão alguns para VBScript e Powershell:

por 04.09.2012 / 16:36
1

NirSoft tem software para alterações de arquivos de monitor no Windows
FolderChangesView

FolderChangesView is a simple tool that monitors the folder or disk drive that you choose and lists every filename that is being modified, created, or deleted while the folder is being monitored. You can use FolderChangesView with any local disk drive or with a remote network share, as long as you have read permission to the selected folder.

vocêpodebaixá-logratuitamentede aqui Mais informações

    
por 22.05.2015 / 07:20
0

Você pode usar o link que se assina a eventos de monitoramento específicos do sistema de arquivos. O código tem anos, mas ainda funciona (pelo menos no Windows Server 2013r2 que eu estava testando ontem).

Há também a ressurreição do github do projeto jnotify no link que não oferece aplicativo de demonstração autônomo, mas (de acordo com os logs de confirmação) alguns bugs.

Em java7 também deve haver algum tipo de sistema de arquivos do tipo inotify, mas eu não estava testando ainda.

    
por 28.11.2018 / 20:03