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.
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.
À 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
É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
.
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}