it-swarm-es.tech

Windows equivalente de whereis?

¿Hay un equivalente del comando Unis whereis en Windows?

De modo que pudiera averiguar dónde están realmente los comandos que puedo ejecutar.

160
Svish

El comando donde hace lo que quiere y se remonta al menos al kit de recursos para Windows 98, y se incluye de forma predeterminada en Server 2003, Vista y más nuevo:

C:\>where csc
C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe

Si se ejecuta sin argumentos (en Vista), da como resultado uno de mis mensajes favoritos:

C:\>where
ERROR: The operation completed successfully.

Si está ejecutando en PowerShell, asegúrese de incluir '.exe' para distinguir de cualquier "donde" alias o scripts a lo largo de la ruta. ('where' es un alias típico para Where-Object.ps1)

C:\> where.exe where.exe
C:\Windows\System32\where.exe
197
Kevin

Por favor, use donde comando:

> where app.exe

Es la mejor manera de lograr tu objetivo.

También puede utilizar el comando de PowerShell:

> $env:path.Split(';') | gci -Filter app.exe

y la versión ampliada se ve así:

 > $env:path.Split(';') | select -Unique | ? {$_ -and (test-path $_)} | gci -Filter app.exe
7
Arek Bee

lo cual.cmd hackerish:

@echo off
@set PATH=.;%PATH%

@rem 
@rem about:  something similar like the unix-alike-which, but with
@rem         within pure cmd
@rem 

if "%1" == "" (
    @echo Usage: 
    @echo.
    @echo   which 'cmd'
    @echo.
    @echo.if 'cmd' is not found, ERRORLEVEL is set to 1
    @echo.  
) else (
    ( @for %%f in (%1 %1.exe %1.cmd %1.bat %1.pif) do if not "%%~$PATH:f" == "" ( @echo %%~$PATH:f ) else @set ERRORLEVEL=1) 
)
7
akira

En algún lugar "ahí fuera" encontré este archivo por lotes whereis.bat:

@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

Actualización: tal vez lo encontré aquí .

3
Craig McQueen

Hay al menos un puerto de Windows para la utilidad which.

2
innaM
function find ($string) { 
   Get-ChildItem -Path 'c:\' -Recurse -Filter $string; 
}

function whereis ($string) { 
   $superpath = "$env:Path;C:\Program Files;C:\Program Files (x86)";
   (echo $superpath).Split(';') | Get-ChildItem -Recurse -Filter $string; 
}

Ejemplo:

PS> encontrar Mozilla.admx

    Directory: C:\Windows\PolicyDefinitions                                                                                     

Mode                LastWriteTime         Length Name                                                                           
----                -------------         ------ ----                                                                           
-a----        1/27/2016  12:22 PM          37146 Mozilla.admx                                                                   

PS> whereis firefox.exe

    Directory: C:\Program Files\Mozilla Firefox                                                                                 

Mode                LastWriteTime         Length Name                                                                           
----                -------------         ------ ----                                                                           
-a----        9/21/2017   5:30 PM         477136 firefox.exe        
1
Rupert

Estaba buscando esto hoy y ya que estoy en XP sin el kit de recursos, me dirigí a powershell con el siguiente comando:

dir -path c:\ -filter ffmpeg.* -r
0
KalenGi

Un enfoque diferente (GUI), pero mira Todo .

0
name