PowerShell еквівалент команді Unix `what`?


69

Чи має PowerShell еквівалент whichкоманді, знайденій у більшості (якщо не у всіх) оболонках Unix?

Мені хотілося б кілька разів дізнатися місце знаходження чогось із командного рядка. В Unix я просто роблю which <command>, і це мені підказує. Я не можу знайти еквівалент у PowerShell.

Відповіді:


71

На це запитали і відповіли на стек-переповнення: еквівалент команди * Nix, яка 'в PowerShell?

Першим псевдонімом, який я зробив, як тільки я почав налаштовувати свій профіль у PowerShell, був "який".

Новий псевдонім, який отримує команду

Щоб додати це до свого профілю, введіть це:

"` nNew-Псевдоніми, які отримують команду "| профіль $ add-content

`N на початку останнього рядка - це гарантувати, що він розпочнеться як новий рядок.


35

З PowerShell 3.0 ви можете це зробити

(Get-Command cmd).Path

Що також має перевагу над ванільним Get-Command повернення, System.Stringтак що ви отримуєте чистий * nixy однорядний вихід, як ви, можливо, звикли. Використовуючи псевдонім gcm, ми можемо зменшити його до 11 символів.

(gcm cmd).Path

4
Якщо Get-Commandзнайде кілька результатів, він повертає масив. Крім того, якщо команда, яку вона знаходить, не є виконуваною, Pathне визначена ( $null). Це робить цю відповідь непрактичною для загального використання без великих змін. Для гарного прикладу обох цих випадків спробуйте Get-Command where.
jpmc26

1
Це має бути прийнятою відповіддю, оскільки вона насправді говорить вам, що є еквівалентом Powershell команди * NIX, whereа не навчає вас, як встановлювати псевдоніми на Powershell, що не є назвою питання.
mastazi

3
@mastazi: Але це не вдається для внутрішніх команд, що є регресійний по порівнянні , наприклад , ЗШ «s which. ( whereДо речі, насправді є Windows , утиліта , яка може зробити цілий ряд різних речей, одна з яких приблизно апроксимує на пошук команди уздовж PATH.) Крім того , немає нічого поганого у відповідь , який пояснює , як зробити те , що було запропоновано і також інша, трохи більше задіяна річ, побудована на цьому.
СамБ

7

Також у 2008 році відповіли: чи є еквівалент "який" у командному рядку Windows?

Спробуйте whereкоманду, якщо ви встановили комплект ресурсів.

Найважливіші частини відповіді:

Windows Server 2003 і пізніші версії надають WHEREкоманду, яка виконує деякі дії, хоча це відповідає всім типам файлів, а не лише виконуваним командам.

[сніп]

У Windows PowerShell потрібно ввести where.exe.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.