Değişiklikler için bir klasörü nasıl izleyebilirim ve eğer öyleyse Windows'ta bir komutu nasıl çalıştırabilirim?


32

Linux ve Mac için benzer sorular var , ama burada bir Windows çözümünün peşindeyim.

Sorun şu şekilde: Bir klasöre birkaç (js) komut dosyası yazmak ve dosya değişiklikleri ve yeni dosyalar için bu klasörü izleyen bir program izlemek ve eklendiğinde bir komut çalıştırmak ve (ne zaman hepsini bir araya getirmek için) tek dosya).

Çözüm:

  1. Hem klasör değişikliklerini hem de eklenen yeni dosyaları bir klasörde izleyin.
  2. Komutu yalnızca değişiklik varsa çalıştırın .

Yerleşik bir çözüm (JScript veya VBscript pasajı gibi) veya yükleme gerektirmeyen bir şeyse en iyisi olur.


Windows için bazı uygulamalar için bu bloga bakın .
Vijay

Yanıtlar:


3

Hile yapabilecek Belvedere adlı bir program var.

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

Arka planda çalışan tek başına bir Windows uygulaması.

Bir dosyanın en son değiştirilme tarihi olan belirli uzantılara sahip dosyaları karşıdan yükleme klasörümü izlemek için ayarladım. Bulduğu dosyalar silinir, ancak bunun yerine bir eylem gerçekleştirmesini sağlayabilirsiniz.


Vay - bu çok iyi görünüyor. Bunu bir cevap olarak seçeceğim (başka birinden daha önce ihtiyacım olanı elde etsem bile), muhtemelen diğer insanlar için (ve belki de gelecekte ben) kullandığımdan çok daha kullanışlı ve çok yönlüdür. . +1 ve kabul edildi!
Camilo Martin

2
Belvedere sonunda çözülmemiş böceklerle , özellikle de özel komutlarla dolu olduğunu bulmak için beni saatlerce kaybetti . FolderMonitor yerine deneyin (ve "{0}{1}"tırnak işaretleri de dahil olmak üzere parametre alanında kullanın ). Tek sorun: Her klasör için ayrı bir komut tanımlayamazsınız. Global olarak sadece bir tane.
fregante

@ bfred.it Belvedere'in sorunları var, ancak benim için çalıştı. FolderMonitor da iyi bir çözüm gibi görünüyor. Ben soruyu soran kullanıcı bir olduğunu düşünüyorum ile sona erdi .
dangowans


7

Bu amaçla basit bir yardımcı program yarattım: https://github.com/benblamey/when_changed

kullanım: when_changed (dosya yolu) (komut) (isteğe bağlı parametreler)

örn. when_changed C: \ somedir \ foo.txt myapp.exe çubuk wibble 123


Bunun nasıl şık bir API olduğunu seviyorum. Klasörleri yinelemeli olarak destekliyor mu?
Camilo Martin

Evet: when_changed C: \ **. Txt foo.exe Pencereler için github.com/joh/when-changed no-dep sürümünün olmasını istedim .
Ben



2

Bu kadar yaygın bir gereksinimdir ki, işletim sisteminin kendisinde yerleşik bir yardımcı program bulunmadığına şaşırdım.

Yine de daha önce de belirtildiği gibi, LogMonitor'u geçmişte başarıyla kullandım . Ancak bu blog gönderisini bilgilendirici buldum ve şimdi Watch 4 Folder'ı kullanıyorum .

Umarım bu size yardımcı olur.


+1, ama biz geliştiriciler dışındaki herkes için "ortak bir gereksinim" demem ... Bu konuda, dosya sistemini izlemek için sistem çağrıları var, "işletim sistemi entegrasyonu" olarak sayılır.
Camilo Martin

1
Peki, ben bunu işletmeler ve ağ paylaşımının bakış açısından görüyordum. Bir dosya eksik olduğunda her zaman kimi suçlayacağınızı bilmek istersiniz: P. Şu anda böyle bir durum teşhisi ortasındayım: /
Vijay


2

JScript veya VBScript kullanarak dahili bir çözüm yapmak istiyorsanız, aramak istediğiniz WMI olay abonelikleri kullanılarak dosya sistemi izlemesidir. Temel olarak, bir klasörü izlemek ve aşağıdaki gibi bir değişiklik tespit edildiğinde işlemleri önceden yapmak için kodu yazın:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... ve betiğiniz, bu olayların gerçekleşmesini izleyen aralıklarla çalışır. Pek çok kaynak var, ancak bazıları VBScript ve Powershell için:


1

NirSoft, Windows
FolderChangesView'da dosya değişikliklerini izlemek için bir yazılıma sahiptir.

FolderChangesView, seçtiğiniz klasörü veya disk sürücüsünü izleyen ve klasör izlenirken değiştirilen, oluşturulan veya silinen her dosya adını listeleyen basit bir araçtır. FolderChangesView, seçilen klasöre okuma izniniz olduğu sürece herhangi bir yerel disk sürücüsü veya uzak ağ paylaşımında kullanabilirsiniz.

görüntü tanımını buraya girin

buradan ücretsiz olarak indirebilirsiniz.
Daha Fazla Bilgi


Bir bilgi / hata ayıklama aracından, bir otomasyondan daha çok, ama yine de ilginç görünüyor.
Camilo Martin

0

Os'a özel dosya sistemi izleme olaylarına abone olan http://jnotify.sourceforge.net/ kullanabilirsiniz . Kod eski ama hala çalışıyor (en azından Windows Server 2013r2'de dün test ediyordum).

Https://github.com/redbooth/jnotify adresinde jnotify projesinin diriltilmesi de var; bunlar bağımsız demo uygulaması sunmuyor, ancak (işlem kayıtlarına göre) bazı hatalar oluyor.

Java 7'de de bir tür inotify benzeri dosya sistemi saati olmalıydı, ama henüz test etmedim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.