PowerShell脚本监控文件夹变化实例
本文介绍使用PowerShell来监视一个指定的文件夹,包括新建文件、删除文件、重命名文件等操作均会被监控或监视。本文使用了System.IO.FileSystemWatcher这个.NET对象。首先,我们来看看程序:
#定义要监控的文件夹,这个文件夹必须先存在。 $folder='D:\test' #定义每次监控的间隔时间,这时定义为1000毫秒,即1秒 $timeout=1000 #创建文件系统监视对象 $FileSystemWatcher=New-ObjectSystem.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'监控被取消.'
说明:本程序将会监控文件夹$folder,这个文件夹首先必须存在。然后执行这个PowerShell脚本。当对这个文件夹进行操作时,比如创建一个新的文件,重命名文件,删除一个文件等等,PowerShell程序所在的命令行窗口都会进行提示。小编测试时的提示如下:
PS>D:\powershell\fs-monitor.ps1 按CTRL+C来退出对文件夹D:\test的监控 警告:FileCreated:新建文本文件.txt 警告:FileRenamed:test.txt 警告:FileDeleted:test.txt
子文件夹的创建、重命名、删除等也会被记录,甚至连子文件夹中创建文件,程序也能监控到。