Powershell 之监控文件系统变化
2016-11-29 21:27
316 查看
#region Import Assemblies #---------------------------------------------- [void][Reflection.Assembly]::Load("System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [void][Reflection.Assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [void][Reflection.Assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") [void][Reflection.Assembly]::Load("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [void][Reflection.Assembly]::Load("System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [void][Reflection.Assembly]::Load("System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") [void][Reflection.Assembly]::Load("System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") #endregion Import Assemblies #设置监控路径 $script:folder="C:\" $form=New-Object System.Windows.Forms.Form $form.FormBorderStyle="Fixed3D" $form.StartPosition = 'CenterScreen' $form.ClientSize="200,80" $form.Text="Monitor" $buttonStart=New-Object System.Windows.Forms.Button $buttonStart.Text="Start Watch" $buttonStart.Location="45,10" $buttonStart.add_click({start-watch}) $buttonStart.Size="100,20" $buttonStop=New-Object System.Windows.Forms.Button $buttonStop.Text="Stop Watch" $buttonStop.Location="45,40" $buttonStop.add_click({stop-watch}) $buttonStop.Size="100,20" $form.Controls.AddRange(@($buttonStart,$buttonStop)) $script:watcher = New-Object System.IO.FileSystemWatcher $folder #开始执行监控 function start-watch{ $NotifyFilters=New-Object System.IO.NotifyFilters #$watcher.NotifyFilter="Size,LastWrite,LastAccess,CreationTime,Security" $watcher.Filter = "*.*" $watcher.InternalBufferSize = 65536 #是否包含子目录 $watcher.IncludeSubDirectories = $True #是否触发事件,必须开启 $watcher.EnableRaisingEvents = $True $watcher.SynchronizingObject = $form $form.Text="Monitoring" $buttonStart.Enabled=$false #创建时触发 $watcher.add_Created({created}) $watcher.add_Changed({changed}) $watcher.add_Deleted({deleted}) $watcher.add_Renamed({renamed}) } function msg($message){ [Windows.Forms.MessageBox]::Show($message) } # $_.changetype 获取操作类型 # $_.fullpath 获取文件绝对路径 function created(){ #创建文件 #自己编写处理逻辑 msg($_.fullpath) } function changed(){ #文件信息变更 #自己编写处理逻辑 msg($_.fullpath) } function deleted(){ #删除文件 #自己编写处理逻辑 msg($_.fullpath) } function renamed(){ #名称变更 #自己编写处理逻辑 msg($_.fullpath) } #停止监控 function stop-watch{ $watcher.EnableRaisingEvents = $false $form.Text="Monitor" $buttonStart.Enabled=$true } $form.ShowDialog()
相关文章推荐
- java读取系统Properties配置文件利用线程实时监控配置文件变化
- .NET Core的文件系统[1]:读取并监控文件的变化
- 监控文件系统的变化
- 【web安全】监控文件目录变化 , 防篡改系统的简易实现
- 监控文件系统的变化
- inotify机制简介(用于监控文件系统中文件及文件夹变化)
- java读取系统Properties配置文件利用线程实时监控配置文件变化
- linux 系统监控某目录下文件及文件夹的变化
- 通过inotify监控linux文件系统变化
- 通过inotify监控linux文件系统变化
- 通过inotify监控linux文件系统变化
- powershell FileSystemWatcher监控文件变化
- 文件系统变化通知
- 用Linux 2.6内核中的文件系统变化通知机制inotify可实现跨机文件同步
- 使用Inotify 监控Linux 文件系统事件
- 利用fsockopen制作简单远程文件监控系统
- 监控文件变化
- inotify -- Linux 2.6 内核中的文件系统变化通知机制
- PowerShell 2.0 实践(一)操作文件系统
- C#监控文件变化