Qual è l'equivalente di Windows del comando "which" in Unix? Esiste un comando equivalente di PowerShell?


Risposte:


79

Alcune versioni di Windows (credo Windows 2003 e versioni successive) hanno il comando where:

c:\>where ping
C:\Windows\System32\PING.EXE

5
wherelavoro per me in Windows 7
Nam G VU

6
Funziona solo in cmd, non in PowerShell (nella mia esperienza)
Thomas,

where /r c:\ fileNameaggiungendo / rc: \ mi ha permesso di eseguire una ricerca ricorsiva a partire dalla radice dell'unità C usando Windows 7 Professional, sembra non essere in access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
CrandellWS

6
in Powershell dovresti dire where.exe pingperché whereè di default alias al Where-Objectcmdlet che è una storia completamente diversa
maoizm

where.exeesplicitamente invece di wherefunzionare per me in PowerShell
drkvogel,

36

Sì, Get-Commandtroverà tutti i comandi inclusi gli eseguibili:

PS\> Get-Command ipconfig

Se vuoi limitare i comandi solo agli eseguibili:

PS\> Get-Command -CommandType Application

Troverà tutti gli ex sul tuo cammino. Esiste un alias per l'uso interattivo:

PS\> gcm net* -CommandType Application

Per ottenere il percorso di un eseguibile, è possibile utilizzare la Pathproprietà dell'oggetto restituito. Per esempio:

PS\> (Get-Command notepad.exe).Path

Per ulteriori informazioni, esegui man Get-Command -full.


2

Oltre a user10404, il comando help funzionerà su alias, quindi puoi usare lo stesso nome di comando (gcm) per aiuto e uso interattivo:

help gcm -Parameter *
# or
man gcm -Par *

2

Se vuoi renderlo breve, crea una riga che.cmd file con il contenuto

echo %~$PATH:1

Ciò cercherà il primo parametro (% 1) alimentato allo script e visualizzerà il percorso completo del file trovato. Un buon posto per inserire questo script in Windows 10 è% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd

E ottieni il tuo comando nel percorso.

c:\>which cmd.exe

c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe

1

where.exeesplicitamente piuttosto che wherefunziona per me in PowerShell:

PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE

Funziona su Windows 10 1903.
Ultrasonic54321

In PowerShell? Sono su Windows 10 Pro 1903 e where pingnon mi dà nulla in PowerShell.
drkvogel,

Mi dispiace non ero chiaro. Intendevo where.exe.
Ultrasonic54321,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.