我使用filter
命令遇到了一些Powershell代码。我从未见过此命令,但它的工作原理基本上是这样的:
它看起来像一个函数。如果运行Get-Command filter
,我将返回The term 'filter' is not recognized as the name of a cmdlet, function, script file, or operable program.
,而Get-Alias filter
也返回类似的消息。 Get-Help filter
只是返回Cmdlet和Functions,并在某处带有单词Filter。如果我用Google搜索“ Powershell过滤器命令”,那么我会得到很多关于带有-Filter
参数和Where-Object
语法的各种命令的信息。
此命令是什么,它的作用是什么?某处有文件吗?谢谢!
答案 0 :(得分:4)
简而言之,过滤器是一种高级功能,只能使用过程块。基于此,可用于操纵(过滤,修改...)管道对象。他们还允许您e。 G。通过模块提供预定义的过滤器功能,可节省您编写复杂的Where-Objects
脚本块100次的工作。
如果流水线对象满足某些条件,它还使您能够结束流水线处理,您只需要在过滤器内使用break
关键字即可。
过滤器
过滤器是在管道中的每个对象上运行的一种函数。过滤器类似于一个函数,其所有语句都位于Process块中。 以下过滤器从管道中获取日志条目,然后显示整个条目或仅显示条目的消息部分:
filter Get-ErrorLog ([switch]$message)
{
if ($message) { Out-Host -InputObject $_.Message }
else { $_ }
}
此link提供了有关包含一些示例的很好的解释。
希望有帮助。
答案 1 :(得分:1)
我猜想它的名称是打算在管道中使用的。我认为它用的不是很多。
PS C:\users\js> Filter plusone { $_ + 1 }
PS C:\users\js> Echo 1 | plusone
2
PS C:\users\js> Filter comma { '{0:n0}' -f $_ }
PS C:\users\js> 1234567890 | comma
1,234,567,890