Windows 監控資料夾並發起腳本

Windows 監控資料夾並發起流程

在 Windows 中設定 FileSystemWatcher 來監控資料夾
可以設定於資料建立時執行腳本

使用到 Windows .Net FileSystemWatcher 類別

  • 建立 FileSystemWatcher 類別並附值到參數中

    1
    $watcher = New-Object System.IO.FileSystemWatcher
  • 設定 FileSystemWatcher 的一些設定

    1
    2
    3
    4
    5
    6
    7
    8
    # 設定監控的路徑
    $watcher.Path = '路徑'
    # 是否監控該路徑的子資料夾
    $watcher.IncludeSubdirectories = $true
    # 是否開啟事件觸發
    $watcher.EnableRaisingEvents = $true
    # 設定只監控某一種檔案,沒辦法一次設定多個,要設置多個 FileSystemWatcher
    $watcher.Filter="*.mp4";
  • 建立要執行的程式

    1
    2
    3
    4
    # 換成你要執行的程式
    $action = {
    Write-Host "Hello!"
    }
  • 註冊到 FileSystemWatcher 中

    1
    Register-ObjectEvent $watcher Created -Action $action

將 ps1 檔案打包成 Windows 服務

完整程式碼

1
2
3
4
5
6
7
8
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = '路徑'
$watcher.IncludeSubdirectories = $true
$watcher.Filter="*.*"; #監控所有檔案
$action = {
Write-Host "Hello!"
}
Register-ObjectEvent $watcher Created -Action $action