【发布时间】:2021-09-16 19:02:18
【问题描述】:
我今天在检查Get-Command 的输出并列出Function: 提供程序下的项目时注意到了一些有趣的事情。我没有看到它在任何加载的内置插件上使用,但我的一个第三方模块显示了一个有趣的CommandType,而不是预期的 Application、Function、Cmdlet 或 别名 类型:
CommandType Name Version Source
----------- ---- ------- ------
Filter New-HashObject 3.3.2 Pscx
我可以通过CommandType 找到这个功能,而且只有这个功能。我以前从未见过。我还翻阅了 PowerShell 文档,我能找到的唯一(几乎)直接参考是从 FunctionInfo 派生的 FilterInfo 类。根据它的描述,我可以看到FilterInfo:
提供有关存储在会话状态中的过滤器的信息。
但这就是它的结尾,并且与FunctionInfo 对Function 的描述差不多。我能够找到其他一些对名称中带有 Filter 的类名的模糊引用,但是这些:
- 都输入了
string并描述了函数(至少我找到的那些是)。 - 已从最新版本的文档中删除了一些内容,但已针对 5.1 进行了记录。
- 它们看起来像 C++ 文档,而不是 C# 或 VB.NET,尽管它们是 PowerShell SDK 文档的一部分。
- 我知道 C++/CLI 是什么,但通常.NET 结构上的 C++ 示例不如 C# 或 VB.NET 常见,处理 PowerShell 的文档更不常见。
什么是Filter 命令?根据我到目前为止的发现,这似乎是一些用于创建过滤器的新结构,以代替尚未记录的基于字符串的过滤,但这些也是程序类型,我绝对找不到关于什么的信息PowerShell 中的过滤器意味着作为可执行结构。我能找到的最接近的东西是Input Filter Parameters 文档,它仍然只解释了基于字符串 的过滤,它引用的@987654324@ 再次用于使用通配符在cmdlet 上实现基于字符串的过滤参数。
【问题讨论】:
-
那……太尴尬了。是的,它看起来像我的问题的答案。在我的辩护中,docs.microsoft.com/en-us/search/… 不会因此产生该页面,其他命令类型(嗯,我知道的)也没有记录在“功能”页面下。如果您将其发布为答案,我会接受。谢谢
-
没有理由尴尬。它非常隐蔽和简洁。你的问题更长。 =D 它似乎也没有像你提到的那样被广泛使用。
-
确实如此。奇怪的是,它没有出现在现有问题列表中,或者当我在询问之前搜索 SO 时。我想正如你提到的那样,它的使用并不广泛。甚至 google/bing 也在使用
functions返回有关过滤器的内容并实施begin / process / end。
标签: powershell powershell-core