大家好,抱歉我是一个Power Shell的新手。目前我正在阅读《Windows PowerShell CookBook》这本书,试图开始学习它。到目前为止,除了一件事情外,所有的东西都很清晰明了,那就是我对于Cmdlet的位置参数感到非常困惑。
例如:Select-String
语法如下:
Select-String [-Pattern] <String[]> [-Path] <String[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>]
[-Encoding <String>] [-Exclude <String[]>] [-Include <String[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch]
[<CommonParameters>]
Select-String [-Pattern] <String[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <String>]
[-Exclude <String[]>] [-Include <String[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] -InputObject <PSObject>
[<CommonParameters>]
Select-String [-Pattern] <String[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <String>]
[-Exclude <String[]>] [-Include <String[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] -LiteralPath <String[]>
[<CommonParameters>]
我可以通过忽略参数名称直接将参数值传递给Cmdlet
,例如:
"Hello World"|Select-String .
基于“位置参数”的概念,因为参数-Pattern
是第一个参数,所以值.
可以匹配参数-Pattern
。我理解得很好。
但是当我尝试使用命令行 "hello world" | Select-String -AllMatches .
时,值.
不在第一位。为什么Select-String
能够识别并输出结果呢?有没有人能够更详细地告诉我原理?谢谢。
Get-Help Select-String -Parameter *
显示参数的详细信息,其中-Pattern
是第一个参数。谢谢。 - Joe.wang