Powershell equivalente ao unix 'qual' comando?

59

O powershell tem um equivalente ao comando which encontrado na maioria (se não em todos) shells unix?

Há um número de vezes que eu gostaria de saber a localização de algo que estou executando na linha de comando. No unix eu só faço which <command> e isso me diz. Não consigo encontrar um equivalente em Powershell.

    
por Herms 02.09.2009 / 20:55

4 respostas

59

Isso foi perguntado e respondido no Stack Overflow: Equivalente ao * Nix ', que 'comando em Powershell?

The very first alias I made once I started customizing my profile in powershell was 'which'.

New-Alias which get-command

To add this to your profile, type this:

"'nNew-Alias which get-command" | add-content $profile

The 'n is to ensure it will start as a new line.

    
por 02.09.2009 / 21:00
28

A partir do PowerShell 3.0, você pode fazer

(Get-Command cmd).Path

Que também tem o benefício sobre o Get-Command vanilla de retornar um System.String para que você tenha uma saída de linha simples e limpa como você pode estar acostumado. Usando o alias gcm, podemos reduzi-lo a 11 caracteres.

(gcm cmd).Path
    
por 23.05.2014 / 21:06
6

Também respondidas em 2008: Existe um equivalente de 'which' no Windows?

Experimente o comando where se você tiver instalado um Resource Kit: link

Partes mais importantes da resposta:

Windows Server 2003 and later provide the WHERE command which does some of what which does, though it matches all types of files, not just executable commands.

[snip]

In Windows PowerShell you must type where.exe.

    
por 13.12.2011 / 05:50
3
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}
    
por 07.01.2011 / 17:14