help format-list
输出格式列表的帮助。为什么`help format-list`不同于`format-list | help`?
format-list | help
输出求救帮助(get-help)。
help format-list
输出格式列表的帮助。为什么`help format-list`不同于`format-list | help`?
format-list | help
输出求救帮助(get-help)。
帮助是基本重定向到一个函数:
Get-Help command | more
如果你看看这个函数的定义,你会看到它接受标记ValueFromPipelineByPropertyName
与Name
一个参数一个位置参数。
PS ~\> Get-Content function:help
<#
.FORWARDHELPTARGETNAME Get-Help
.FORWARDHELPCATEGORY Cmdlet
#>
[CmdletBinding(DefaultParameterSetName='AllUsersView')]
param(
[Parameter(Position=0, ValueFromPipelineByPropertyName=$true)]
[System.String]
${Name},
# Other arguments deleted for brevity
[Switch]
${Online})
$outputEncoding=[System.Console]::OutputEncoding
Get-Help @PSBoundParameters | more
这基本上意味着,如果它认为与被叫Name
属性参数,它结合,作为一个输入参数。所以,当你这样做:
format-list | help
格式-list命令运行(不返回任何),所以帮助功能认为收到任何参数。
当你这样做:
"format-list" | help
你传递一个字符串参数。该字符串类型没有Name
权利,因此您会收到一条错误消息,指出它无法绑定参数。但是,如果你尝试过:
PS ~\> get-command format-list
CommandType Name Definition
----------- ---- ----------
Cmdlet Format-List Format-List [[-Property] <Object[]>] [-GroupBy <...
可以看到该命令的格式列表确实有一个Name属性,所以如果你试图
get-command format-list | help
你得到format-list
帮助。
The |或“管道”操作员将一个操作的输出重定向到另一个操作。因此,在这种情况下,您正在调用format-list,然后将其作为参数的输出重定向以提供帮助。帮助不知道如何处理该参数,因此它会进入默认的帮助(帮助)。
为什么不''“format-list”|帮助'工作? –