Windows에서 폴더 변경 사항을 모니터링하고 변경 사항이 있으면 명령을 실행하는 방법은 무엇입니까?


32

LinuxMac에 대해서도 비슷한 질문이 있지만 Windows 솔루션을 사용하고 있습니다.

문제는 다음과 같습니다. 폴더에 여러 개의 (js) 스크립트 파일을 작성하고 프로그램에서 파일 변경 및 새 파일 추가를 위해 해당 폴더를 모니터링하고 발생할 때마다 명령을 실행하여 모든 파일을 하나로 컴파일합니다. 단일 파일).

해결책은 다음과 같습니다.

  1. 폴더에서 파일 변경 사항과 추가되는 새 파일을 모두 모니터링합니다.
  2. 변경 사항이있는 경우 에만 명령을 실행하십시오 .

내장 솔루션 (JScript 또는 VBscript 스 니펫과 같은)이거나 설치가 필요하지 않은 것이 가장 좋습니다.


Windows 용 일부 앱 은 이 블로그 를 참조하십시오 .
Vijay

답변:


3

트릭을 수행 할 수있는 Belvedere라는 프로그램이 있습니다.

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

백그라운드에서 실행되는 독립 실행 형 Windows 앱입니다.

하루의 마지막 수정 날짜를 가진 특정 확장자를 가진 파일에 대한 다운로드 폴더를 모니터링하도록 설정했습니다. 찾은 파일은 삭제되지만 대신 작업을 실행할 수 있습니다.


와우-그거 정말 좋아 보인다. 나는 아마도 다른 사람 (그리고 아마도 나에게 아마도 내가 사용하고있는 것보다 훨씬 유용하고 다재다능하기 때문에)으로 대답 할 것이다. . +1하고 수락했습니다!
카밀로 마틴

2
Belvedere는 특히 사용자 정의 명령을 사용하여 해결되지 않은 버그로 가득 찬 결과를 얻는 데 몇 시간을 허비했습니다 . 대신 FolderMonitor 를 사용해보십시오 ( "{0}{1}"따옴표를 포함하여 매개 변수 필드에서 사용 하십시오). 유일한 문제 : 각 폴더에 대해 별도의 명령을 정의 할 수 없습니다. 전 세계적으로 단 하나.
fregante

@ bfred.it Belvedere에는 문제가 있지만 나를 위해 일했습니다. FolderMonitor도 좋은 솔루션처럼 보입니다. 나는이 질문을 사용자가 하나의 생각 으로 돌아가 셨습니다 .
dangowans


7

이 목적을 위해 간단한 유틸리티를 만들었습니다 : https://github.com/benblamey/when_changed

사용법 : when_changed (파일 경로) (명령) (선택적 매개 변수)

예 : when_changed C : \ somedir \ foo.txt myapp.exe 바 비틀기 123


나는 그것이 우아한 API를 좋아합니다. 폴더를 재귀 적으로 지원합니까?
Camilo Martin

예 : when_changed C : \ **. txt foo.exe Windows 용 github.com/joh/when-changed 의 no-dep 버전을 했습니다.
Ben

6

.NET watchfolders를 사용하면 코드 작성이 매우 쉽습니다. 누군가 그런 프로그램을했다고 확신합니다.

당신을 위해이 보석을 발견 http://www.guidingtech.com/9861/automate-folder-actions-windows-watch-4-folder/


.NET에서 이것을 코딩하는 것이 얼마나 쉬운 지 알고 있습니다. 방금 원하지 않았습니다. 그러나 나는 이것을 무료로 시도하고 있습니다. 추천으로 +1, 그중 하나도 멋지게 보입니다.
Camilo Martin


2

이것은 OS 자체에 편리한 유틸리티가 내장되어 있지 않다는 것에 대한 일반적인 요구 사항입니다.

어쨌든 이전에 LogMonitor를 성공적으로 사용 했습니다. 그러나 나는 이 블로그 게시물을 유익하게 발견 했으며 지금 Watch 4 Folder를 사용하고 있습니다.

잘하면 이것은 당신을 도와줍니다.


+1이지만 개발자를 제외한 다른 사람에게는 이것이 "일반적인 요구 사항"이라고 말하지 않을 것입니다. 그리고 그 문제에 대해 파일 시스템을 모니터링하는 시스템 호출이 있으므로 "OS 통합"으로 간주됩니다.
Camilo Martin

1
비즈니스 및 네트워크 공유 관점에서 보았습니다. 당신은 항상 파일이 없을 때 비난 할 사람을 알고 싶어합니다. : P. 나는 지금 그러한 상황을 진단하는 중입니다 : /
Vijay


2

JScript 또는 VBScript를 사용하여 기본 제공 솔루션을 수행하려는 경우 WMI 이벤트 구독을 사용한 파일 시스템 모니터링이 필요합니다. 기본적으로 폴더를 모니터링하는 코드를 작성하고 다음과 같이 변경이 감지되면 작업을 수행합니다.

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

... 그리고 스크립트는 이러한 이벤트가 발생하는지 감시하는 간격으로 실행됩니다. 많은 리소스가 있지만 VBScript 및 Powershell에 대한 리소스는 다음과 같습니다.


1

NirSoft에는 Windows
FolderChangesView 에서 모니터 파일 변경을위한 소프트웨어가 있습니다

FolderChangesView는 선택한 폴더 또는 디스크 드라이브를 모니터링하고 폴더를 모니터링하는 동안 수정, 작성 또는 삭제되는 모든 파일 이름을 나열하는 간단한 도구입니다. 선택한 폴더에 대한 읽기 권한이 있으면 로컬 디스크 드라이브 또는 원격 네트워크 공유와 함께 FolderChangesView를 사용할 수 있습니다.

여기에 이미지 설명을 입력하십시오

여기 에서 무료로 다운로드 할 수 있습니다.
추가 정보


자동화 도구보다 더 많은 정보 / 디버깅 도구 인 것 같지만 여전히 흥미 롭습니다.
Camilo Martin

0

운영 체제 별 파일 시스템 모니터링 이벤트를 구독 하는 http://jnotify.sourceforge.net/ 을 사용할 수 있습니다 . 코드는 오래되었지만 여전히 작동합니다 (적어도 Windows Server 2013r2에서는 어제 테스트했습니다).

https://github.com/redbooth/jnotify 에는 jnotify 프로젝트의 github 부활이 있습니다 .

Java7에는 일종의 inotify와 같은 파일 시스템 시계가 있어야하지만 아직 테스트하지는 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.