“帮助树”返回复制项目的帮助

“帮助树”返回复制项目的帮助

在进行一些研究另一个问题,我想检查一下,确保这tree不是真正的本机 PowerShell 命令或别名。当然,正确的方法是使用Get-Command。但是,当我查找我不确定的命令时,我通常更喜欢直接转到帮助文件(如果存在),而不是执行“检查命令是否存在”的两步,然后转到帮助”。因此,我运行的命令是help tree。令我惊讶的是,它返回了 Copy-Item 的帮助文件!

为了进行健全性检查,我将其拼写出来 - Get-Help tree- 但最终得到了相同的结果。为了查看是否出于某种奇怪的原因,我运行了tree的别名- 这返回了一个错误,指出这样的别名不存在。我运行以检查 的所有别名,结果只显示、和。Copy-Itemgal treegal -def Copy-ItemCopy-Itemcopycpcpi

最后,我gcm tree查看了 PowerShell 实际应该使用的内容tree。正如我所料,结果显示 CommandType 为“Application”,定义是“C:\Windows\system32\tree.com”。

不幸的是,这些都无法解释Get-Help此处的异常行为。当两者看起来完全不相关时,为什么会Get-Help tree返回帮助文件?此行为已在 Windows 7 SP1 上的 PowerShell 2.0 和 Windows 8.1 上的 PowerShell 4.0 中重复出现。Copy-Item

在此处输入图片描述

答案1

您之所以得到这个结果,是因为 Copy-Item 的帮助是仅有的系统中含有关键字“tree”的帮助文件。以下命令将显示字符串“tree”出现在示例部分的备注中。

(Get-Help -Name Copy-Item).examples.example.remarks | Where-Object { $_ -match 'tree'}

尝试以下命令,您会发现关键字“intact”对于该帮助文件来说也是唯一的。

Get-Help intact

这也解释了为什么使用其他语言环境找不到它。

例如,要获取包含关键字“particular”的帮助文件列表,请使用命令

Get-Help particular

我希望这可以澄清用法。

相关内容