PowerShell脚本如何监控文件夹变化?实例教程

发布时间:2020-07-25编辑:脚本学堂
如何用PowerShell脚本监控文件夹变化呢?在powershell脚本中可以监控到文件夹内新建文件、删除文件、重命名文件等操作,可见powershell对文件监控还是很强的,一起来看看。

使用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 '监控被取消.'

说明:
本程序将会监控文件夹$folder,这个文件夹首先必须存在。
然后,执行这个Powershell脚本
当对这个文件夹进行操作时,比如创建一个新的文件,重命名文件,删除一个文件等,powershell程序所在的命令行窗口都会进行提示。

比如我的测试结果,如下:
 

PS> D:powershellfs-monitor.ps1
按 CTRL+C 来退出对文件夹 D:test 的监控
警告: File Created : 新建文本文件.txt
警告: File Renamed : test.txt
警告: File Deleted : test.txt

可见,子文件夹的创建、重命名、删除等也会被记录,甚至连子文件夹中创建文件,程序也能监控到。

以上介绍了powershell中使用System.IO.FileSystemWatcher对象监控文件变化的方法,希望对大家有所帮助。