2

Выполняя некоторые исследования по другому вопросу, я хотел убедиться, что 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.

1 ответ1

0

Вы получаете этот результат, потому что справка для Copy-Item является единственным файлом справки в вашей системе, который содержит ключевое слово "дерево". Следующая команда покажет, что строка "дерево" встречается в примечаниях раздела примеров.

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

Попробуйте выполнить приведенную ниже команду, и вы обнаружите, что ключевое слово "intact" также уникально для этого файла справки.

Get-Help intact

Это также объясняет, что он не найден в другой локали.

Например, для списка файлов справки, содержащих ключевое слово "частности", используйте команду

Get-Help particular

Я надеюсь, что это разъясняет использование.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .