powershell - Powershell IO.FileSystemWatcher 过滤器
问题描述
我创建了一个IO.filesystemwatcher
来监视文件夹并在将某些文件类型写入该位置时采取行动。我正在寻找文件类型.jpg
和.tmp
. 我已将过滤器命名为变量,过滤器在包含一种文件类型而不是两种类型时有效。
下面的代码正常运行:
$filter = '*.jpg'
New-Object IO.FileSystemWatcher $Folder, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
下面的代码正常运行:
$filter = '*.tmp'
New-Object IO.FileSystemWatcher $Folder, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
下面的代码不起作用:
$filter = '*.tmp','*jpg'
New-Object IO.FileSystemWatcher $Folder, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
我也试过$filter = '*.tmp' -or '*jpg'
我确信有一种不同的方法可以让它发挥作用,但我不太擅长使用IO.filesystemwatcher
. 任何建议表示赞赏。
谢谢
解决方案
该.Filter
属性是[string]
-typed 并且仅支持单个通配符表达式;来自文档:
"*.txt|*.doc"
不支持使用多个过滤器,例如。
听起来你必须:
要么:通过设置为(空字符串)来监视所有文件的更改,然后在事件处理程序中执行您自己的过滤。
.Filter
''
或者:为每个过滤器设置一个单独的观察者实例(通配符模式)。谢谢,mhhollomon。
推荐阅读
- python - 在python中查找所选日期和当前日期之间的差异(以天为单位)
- reactjs - 忽略
不能按预期工作 - r - 按列值对数据框进行排序(r)
- python - 对平衡数据集进行分层
- php - 如何在一个页面上使用一个表单两次或三次?
- image - 使用 Selenium 下载全尺寸图像
- testing - TestCafe 可以支持的最大并发是多少
- php - 安装 Composer,在设置检查期间出现错误“PHP 警告:PHP 启动:无法加载动态库 'php_wincache.dll'”
- sql - 按月优化 postgres 查询平均值 [已编辑]
- r - 显式语句有效,但以语句为模型的函数返回空列表