web-dev-qa-db-fra.com

Equivalent PowerShell de la commande `Quelle` de Unix?

PowerShell a-t-il un équivalent à la commande which trouvée dans la plupart (sinon tous) les shells Unix?

Plusieurs fois, j'aimerais savoir l'emplacement de quelque chose que je lance en ligne de commande. Sous Unix, je ne fais que which <command>, et ça me dit. Je ne trouve pas d'équivalent dans PowerShell.

66
Herms

Cela a été demandé et répondu à Stack Overflow: Équivalent de * Nix "quelle commande" dans PowerShell?

Le tout premier alias que j'ai créé une fois que j'ai commencé à personnaliser mon profil dans PowerShell était "qui".

New-Alias ​​qui get-command

Pour ajouter ceci à votre profil, tapez ceci:

"` nNew-Alias ​​qui get-command "| profil add-content $

Le `n au début de la dernière ligne est d’assurer que celle-ci commence par une nouvelle ligne.

69
nagul

À partir de PowerShell 3.0, vous pouvez faire

(Get-Command cmd).Path

Ce qui présente également l'avantage, par rapport à Vanilla Get-Command, de renvoyer un System.String afin que vous obteniez une sortie de ligne nette * nixy comme vous le feriez peut-être. En utilisant l’alias gcm, nous pouvons le réduire à 11 caractères.

(gcm cmd).Path
32
FLGMwt

Également répondu en 2008: Existe-t-il un équivalent de 'qui' sur la ligne de commande Windows?

Essayez la commande where si vous avez installé un kit de ressources.

Les parties les plus importantes de la réponse:

Windows Server 2003 et les versions ultérieures fournissent la commande WHERE qui effectue une partie de ce qui est fait, bien qu'elle corresponde à tous les types de fichiers, pas seulement aux commandes exécutables.

[couper]

Dans Windows PowerShell, vous devez taper where.exe.

6
Anonymous
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}
3
hshen