Выполняя некоторые исследования по другому вопросу, я хотел убедиться, что tree не является реальной собственной командой или псевдонимом PowerShell. Конечно, правильный способ сделать это с помощью Get-Command . Однако, когда я ищу команду, в которой я не уверен, я обычно предпочитаю сразу перейти к файлу справки, если он существует, вместо двухэтапного «проверить, существует ли команда, а затем перейти к справке». , Итак, команда, которую я выполнил, была help tree . К моему удивлению, он вернул файл справки для Copy-Item!
В качестве проверки работоспособности я прописал это - Get-Help tree - но в итоге получил те же результаты. Чтобы увидеть, было ли tree по какой-то странной причине псевдонимом для Copy-Item я запустил gal tree - это вернуло ошибку, говоря, что такой псевдоним не существует. Я запустил gal -def Copy-Item чтобы проверить все псевдонимы для Copy-Item , и он только поднял copy , cp и cpi .
Наконец, я сделал gcm tree чтобы увидеть, что PowerShell должен был использовать для tree . Как я и ожидал, это вызвало CommandType типа "Приложение" с определением «C:\Windows\system32\tree.com».
К сожалению, ни один из этих ответов не отвечает за необычное поведение Get-Help здесь. Зачем Get-Help tree возвращать файл справки для Copy-Item , когда они кажутся совершенно не связанными? Это поведение было дублировано в PowerShell 2.0 в Windows 7 с пакетом обновления 1 и PowerShell 4.0 в Windows 8.1.

