Como monitorar uma pasta para alterações e executar um comando, se houver, no Windows?


32

Existem perguntas semelhantes para Linux e Mac , mas estou procurando uma solução para Windows aqui.

O problema é o seguinte: Quero gravar vários arquivos de script (js) em uma pasta e ter um programa que monitore essa pasta para alterações de arquivos e novos arquivos sendo adicionados, e execute um comando sempre que isso acontecer (para compilá-los todos em um só único arquivo).

A solução tem que:

  1. Monitore as alterações de arquivos e os novos arquivos que estão sendo adicionados em uma pasta.
  2. Execute um comando apenas se houver alguma alteração.

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


consulte este blog para alguns aplicativos para Windows.
Vijay

Respostas:


3

Existe um programa chamado Belvedere que pode fazer o truque.

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

É um aplicativo do Windows independente que é executado em segundo plano.

Eu o configurei para monitorar minha pasta de downloads em busca de arquivos com determinadas extensões com datas da última modificação de um dia. Os arquivos que ele encontra excluem, mas você pode executar uma ação.


Uau - esse parece super legal. Vou escolher isso como uma resposta (mesmo que eu já tenha conseguido o que precisava de outro), pois provavelmente é muito mais útil e versátil do que o que estou usando para outras pessoas (e talvez eu no futuro!) . +1 e aceito!
Camilo Martin

2
O Belvedere me fez perder horas para descobrir que está cheio de bugs não resolvidos , especialmente com comandos personalizados. Tente o FolderMonitor (e use "{0}{1}"no campo de parâmetro, incluindo as aspas). Único problema: você não pode definir um comando separado para cada pasta. Apenas um, globalmente.
fregante 14/05

@ bfred.it Belvedere tem seus problemas, mas funcionou para mim. O FolderMonitor também parece uma boa solução. Eu acho que é o que o usuário faz a pergunta acabou com .
dangowans 14/05





2

Esse é um requisito tão comum que fico surpreso por não haver um utilitário conveniente incorporado ao próprio sistema operacional.

De qualquer forma, como mencionado anteriormente, eu usei o LogMonitor com sucesso no passado. No entanto, achei este post informativo e estou usando o Watch 4 Folder agora.

Espero que isso ajude você.


+1, mas eu não diria que é um "requisito comum" para qualquer pessoa, exceto nós, desenvolvedores ... E, nesse caso, existem chamadas de sistema para monitorar o sistema de arquivos, o que é considerado "integração do SO", eu acho.
Camilo Martin

11
Bem, eu estava vendo isso da perspectiva das empresas e do compartilhamento de rede. Você sempre quer saber a quem culpar quando um arquivo desaparece: P. Estou no meio de diagnosticar uma situação assim agora: /
Vijay


2

Se você deseja criar uma solução interna usando JScript ou VBScript, o que deseja procurar é o monitoramento do sistema de arquivos usando assinaturas de eventos WMI. Basicamente, você escreve o código para monitorar uma pasta e executar 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:


1

NirSoft possui software para monitorar alterações de arquivos no Windows
FolderChangesView

O FolderChangesView é uma ferramenta simples que monitora a pasta ou a unidade de disco escolhida e lista todos os nomes de arquivos que estão sendo modificados, criados ou excluídos enquanto a pasta está sendo monitorada. Você pode usar o FolderChangesView com qualquer unidade de disco local ou com um compartilhamento de rede remoto, desde que tenha permissão de leitura para a pasta selecionada.

insira a descrição da imagem aqui

você pode baixá-lo gratuitamente aqui
Mais informações


Parece mais uma ferramenta de informação / depuração do que uma de automação, mas ainda interessante.
Camilo Martin #

0

Você pode usar http://jnotify.sourceforge.net/, que assina eventos de monitoramento de sistema de arquivos específicos do sistema operacional. O código tem anos, mas ainda funciona (pelo menos no Windows Server 2013r2 eu estava testando ontem).

Também há a ressurreição do projeto jnotify pelo github em https://github.com/redbooth/jnotify, que não oferece aplicativo de demonstração independente, mas (de acordo com os logs de confirmação) corrige alguns bugs.

No java7, deveria haver algum tipo de sistema de arquivos semelhante a inotify, mas eu ainda não estava testando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.