「幫助樹」回傳複製項目的協助

「幫助樹」回傳複製項目的協助

在做一些研究時另一個問題,我想檢查一下以確保這tree不是實際的本機 PowerShell 命令或別名。當然,正確的方法是使用Get-Command.但是,當我查找不確定的命令時,我通常更喜歡直接查看幫助文件(如果存在),而不是執行“檢查命令是否存在,然後去幫助」。所以,我運行的命令是help tree。令我驚訝的是,它返回了 Copy-Item 的幫助文件!

作為健全性檢查,我將其拼寫出來 -Get-Help tree但最終得到了相同的結果。為了查看是否出於某種奇怪的原因,我運行了tree一個別名- 這返回了一個錯誤,指出這樣的別名不存在。我跑去檢查 的所有別名,結果只出現了, , 和。Copy-Itemgal treegal -def Copy-ItemCopy-Itemcopycpcpi

最後,我確實gcm tree看到了 PowerShell 實際應該用於tree.正如我所料,這出現了「Application」的 CommandType,其定義為「C:\Windows\system32\tree.com」。

不幸的是,這些都無法解決Get-Help這裡的異常行為。當兩者看起來完全無關時,為什麼要Get-Help tree回傳 的幫助文件? Copy-ItemWindows 7 SP1 上的 PowerShell 2.0 和 Windows 8.1 上的 PowerShell 4.0 中也出現了此行為。

在此輸入影像描述

答案1

您得到這個結果是因為 Copy-Item 的幫助是僅有的系統中包含關鍵字「tree」的幫助文件。以下指令將顯示字串「tree」出現在範例部分的註解中。

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

嘗試下面的命令,您會發現關鍵字“intact”對於該幫助文件也是唯一的。

Get-Help intact

這也解釋了使用其他語言環境來找不到它。

例如,對於包含關鍵字“pspecial”的幫助文件列表,請使用命令

Get-Help particular

我希望這能澄清用法。

相關內容