web-dev-qa-db-fra.com

L'équivalent Windows de Whereis?

Existe-t-il un équivalent de la commande Unix whereis dans Windows?

Pour que je puisse savoir où sont réellement les commandes que je peux exécuter.

159
Svish

La commande where fait ce que vous voulez et renvoie au moins au kit de ressources pour Windows 98; elle est incluse par défaut dans Server 2003, Vista et les versions plus récentes:

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

S'il est exécuté sans arguments (sous Vista), l'un de mes messages favoris est le suivant:

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

Si vous exécutez PowerShell, veillez à inclure ".exe" pour le distinguer des alias ou des scripts "où" situés le long du chemin. ('Où' est un alias typique de Where-Object.ps1)

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

Veuillez utiliser where command:

> where app.exe

C'est le meilleur moyen d'atteindre votre objectif.

Vous pouvez également utiliser la commande PowerShell:

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

et la version étendue ressemble à ceci:

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

hackerish qui.cmd:

@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

Quelque part "là-bas", j'ai trouvé ce fichier de commandes whereis.bat:

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

Mise à jour: peut-être que je l'ai trouvé ici .

3
Craig McQueen

Il existe au moins un port Windows pour l'utilitaire 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; 
}

Exemple:

PS> trouver Mozilla.admx

    Directory: C:\Windows\PolicyDefinitions                                                                                     

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

PS> où est firefox.exe

    Directory: C:\Program Files\Mozilla Firefox                                                                                 

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

Je cherchais ceci aujourd'hui et comme je suis sur XP sans le kit de ressources, je me suis tourné vers powershell avec la commande suivante:

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

Une approche différente (GUI), mais regardez Tout .

0
name