我正在使用Sysinternals Process Monitor来调试一些传入的事件,现在我正在尝试在Path上创建一个过滤器并使用通配符。我尝试使用的是以 c:\MyApp\MyDocuments\Temp 开头并以 .pdf 结尾的路径
路径筛选器应如下所示:c:\MyApp\MyDocuments\Temp*.pdf
我该怎么做?
当你有两个这样的过滤器时:
Path
begins with
c:MyAppMyDocumentsTemp
Path
ends with
.pdf
发生的情况是包含从该临时文件夹开始的任何内容,并且包括记录.pdf事件的其他任何地方,因此您将获得不想要的结果。像这样的东西:
C:MyAppMyDocumentsTemp.txt (not a PDF)
C:SomeOtherFolderfile.pdf (not the folder I want)
进程监视器帮助文件解释了为什么开头为/结尾为筛选器不能协同工作。从帮助文件:
进程监视器 OR 一起 与特定属性类型相关的所有筛选器,以及 AND 一起筛选不同的属性类型。例如,如果 您指定的进程名称包括记事本.exe和 Cmd 的筛选器.exe 和路径包含 C:\Windows 的过滤器,进程监视器只会 显示源自记事本.exe或 Cmd 的事件.exe 指定 C:\Windows 目录。
因此,由于过滤器实体是"开头为"和"结尾为"的"路径",因此进程监视器 OR 是它们,因此我们得到了我们不想要的噪音。这是一个过滤器组合,可以按照我们想要的方式工作:
Path
ends with
.pdf
Include
Path
excludes
C:MyAppMyDocumentsTemp
Exclude
据我所知,"排除"关系运算符的行为类似于"不包含"。我找不到任何列出所有运算符及其作用的特定文档,但看起来就是这样。因此,即使我们有两个"路径"过滤器会得到OR'd,因为一个是包含,另一个是排除,我们得到我们想要的东西,这只是在该文件路径中编辑的PDF。
AFAIK,这是不可能的。你可以只使用
begins with
c:MyAppMyDocumentsTemp
和另一个过滤器ends with
.pdf
.