Bagaimana cara memonitor folder untuk perubahan, dan menjalankan perintah jika itu, pada Windows?

32

Ada pertanyaan serupa untuk Linux dan Mac , tapi saya mencari solusi Windows di sini.

Masalahnya adalah sebagai berikut: Saya ingin menulis beberapa file skrip (js) di folder, dan memiliki program memonitor folder itu untuk perubahan file dan file baru yang ditambahkan, dan menjalankan perintah kapan pun itu terjadi (untuk mengkompilasi semuanya menjadi satu file tunggal).

Solusinya harus:

  1. Pantau perubahan file dan file baru yang ditambahkan, dalam folder.
  2. Jalankan perintah hanya jika ada perubahan.

Akan lebih baik jika itu merupakan solusi bawaan (seperti cuplikan JScript atau VBscript), atau sesuatu yang tidak memerlukan instalasi.

Camilo Martin
sumber
lihat blog ini untuk beberapa aplikasi untuk windows.
Vijay

Jawaban:

3

Ada sebuah program bernama Belvedere yang mungkin bisa melakukan trik.

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

Ini adalah aplikasi Windows yang berdiri sendiri yang berjalan di latar belakang.

Saya telah mengaturnya untuk memantau folder unduhan saya untuk file dengan ekstensi tertentu dengan tanggal modifikasi terakhir yang berumur satu hari. File yang ditemukannya, terhapus, namun Anda dapat menjalankannya sebagai gantinya.

dangowans
sumber
Wow - yang itu terlihat sangat bagus. Saya akan memilih ini sebagai jawaban (bahkan jika saya sudah mendapatkan apa yang saya butuhkan dari yang lain) karena mungkin jauh lebih bermanfaat dan serbaguna daripada yang saya gunakan, untuk orang lain (dan mungkin saya di masa depan!) . +1 dan diterima!
Camilo Martin
2
Belvedere membuat saya kehilangan jam untuk akhirnya menemukan itu penuh dengan bug yang tidak terpecahkan , terutama dengan perintah khusus. Coba FolderMonitor saja (dan gunakan "{0}{1}"di bidang parameter, termasuk tanda kutip). Hanya masalah: Anda tidak dapat menentukan perintah terpisah untuk setiap folder. Hanya satu, secara global.
fregante
@ bfred.it Belvedere memang memiliki masalah, tetapi berhasil untuk saya. FolderMonitor juga terlihat seperti solusi yang bagus. Saya pikir ini adalah pertanyaan yang diajukan oleh pengguna .
dangowans
13

Saya sudah sukses dengan program lama yang disebut Log Monitor. Itu kuno, dan sudah lama ditinggalkan. Tapi itu melayani tujuan dengan cukup baik.

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

Bob
sumber
1
Ah terima kasih. Saya sedang mencoba utilitas lain , tetapi +1!
Camilo Martin
"benda" yang luar biasa ini bekerja dengan sempurna di windows 10!
mboullouz
7

Saya telah membuat utilitas sederhana untuk tujuan ini: https://github.com/benblamey/when_changed

penggunaan: when_changed (path file) (perintah) (opsional-parameter)

misal when_changed C: \ somedir \ foo.txt myapp.exe bar wibble 123

Ben
sumber
Saya suka bagaimana itu API yang elegan. Apakah ini mendukung folder secara rekursif?
Camilo Martin
Ya: when_changed C: \ **. Txt foo.exe Saya ingin versi no-dep dari github.com/joh/when-changed untuk windows.
Ben
6

Dengan .NET watchfolders ini sangat mudah untuk dikodekan. Saya yakin seseorang telah melakukan program semacam itu.

Baru saja menemukan permata ini untuk Anda http://www.guidingtech.com/9861/automate-folder-actions-windows-watch-4-folder/

bokan
sumber
Saya menyadari betapa mudahnya untuk kode ini di .NET - Saya hanya tidak mau. Tapi aku mencoba yang satu ini yang gratis, hanya mungkin bekerja terlalu! +1 untuk rekomendasi, yang satu itu kelihatannya bagus juga.
Camilo Martin
4

Saat ini saya sedang mencoba aplikasi ini , yang membutuhkan .NET, tetapi sepertinya itu berfungsi.

Camilo Martin
sumber
2

Ini adalah persyaratan umum sehingga saya terkejut tidak ada utilitas yang nyaman dibangun ke dalam OS itu sendiri.

Bagaimanapun seperti yang disebutkan sebelumnya saya telah menggunakan LogMonitor dengan sukses di masa lalu. Namun saya menemukan posting blog ini informatif dan saya menggunakan Folder Watch 4 sekarang.

Semoga ini bisa membantu Anda keluar.

Vijay
sumber
+1, tapi saya tidak akan mengatakan itu adalah "persyaratan umum" bagi siapa pun kecuali kita pengembang ... Dan dalam hal ini, ada panggilan sistem untuk memantau sistem file, sehingga dianggap sebagai "integrasi OS".
Camilo Martin
1
Yah saya melihatnya dari sudut pandang bisnis & jaringan. Anda selalu ingin tahu siapa yang harus disalahkan ketika file hilang: P. Saya di tengah-tengah mendiagnosis situasi seperti ini sekarang: /
Vijay
2

Jika Anda ingin melakukan solusi bawaan menggunakan JScript atau VBScript, maka yang ingin Anda cari adalah pemantauan sistem file menggunakan langganan acara WMI. Pada dasarnya Anda menulis kode untuk memantau folder dan melakukan tindakan saat perubahan terdeteksi seperti:

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... dan skrip Anda berjalan pada interval yang mengawasi peristiwa ini terjadi. Ada banyak sumber daya, tetapi di sini ada beberapa untuk VBScript dan Powershell:

mrTomahawk
sumber
1

NirSoft memiliki perangkat lunak untuk memonitor perubahan file pada Windows
FolderChangesView

FolderChangesView adalah alat sederhana yang memonitor folder atau disk drive yang Anda pilih dan mencantumkan setiap nama file yang sedang dimodifikasi, dibuat, atau dihapus saat folder sedang dipantau. Anda dapat menggunakan FolderChangesView dengan drive disk lokal atau dengan berbagi jaringan jarak jauh, selama Anda telah membaca izin ke folder yang dipilih.

masukkan deskripsi gambar di sini

Anda dapat mengunduhnya secara gratis dari sini
Info Lebih Lanjut

AminM
sumber
Tampaknya lebih dari alat informasi / debugging daripada yang otomatisasi, tetapi masih menarik.
Camilo Martin
0

Anda dapat menggunakan http://jnotify.sourceforge.net/ yang berlangganan acara pemantauan sistem file os-spesifik. Kode sudah lama tetapi masih berfungsi (setidaknya pada Windows Server 2013r2 yang saya uji kemarin).

Ada juga kebangkitan github dari proyek jnotify di https://github.com/redbooth/jnotify yang tidak menawarkan aplikasi demo yang berdiri sendiri tetapi (menurut komit log) menambal beberapa bug.

Di java7 harus ada semacam filesystem seperti nonton juga, tapi saya belum mengujinya.

andrej
sumber