本文介绍使用PowerShell来监视一个指定的文件夹,包括新建文件、删除文件、重命名文件等操作均会被监控或监视。本文使用了System.IO.FileSystemWatcher这个.NET对象。首先,我们来看看程序:
# 定义要监控的文件夹,这个文件夹必须先存在。 $folder = 'D:\test' # 定义每次监控的间隔时间,这时定义为1000毫秒,即1秒 $timeout = 1000 # 创建文件系统监视对象 $FileSystemWatcher = New-Object System.IO.FileSystemWatcher $folder Write-Host ”按 CTRL+C 来退出对文件夹 $folder 的监控” while ($true) { # 监控文件夹内的所有变化 $result = $FileSystemWatcher.WaitForChanged('all', $timeout) if ($result.TimedOut -eq $false) { # 当文件夹的内容变化时,发出警告提示 Write-Warning ('File {0} : {1}' -f $result.ChangeType, $result.name) } } Write-Host '监控被取消.'
PS> D:\powershell\fs-monitor.ps1 按 CTRL+C 来退出对文件夹 D:\test 的监控 警告: File Created : 新建文本文件.txt 警告: File Renamed : test.txt 警告: File Deleted : test.txt