Windows эквивалент whereis?

Существует ли эквивалент команды Unix whereis в Windows?

Итак, я мог бы выяснить, какие команды я могу запустить на самом деле.

145 голосов | спросил Svish 11 PM00000020000003831 2009, 14:50:38

9 ответов


172

Команда , где делает то, что вам нужно, и вернется хотя бы к набору ресурсов для Windows 98 и по умолчанию включена в Server 2003, Vista и новее:

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

Если выполняется без аргументов (в Vista), это приводит к одному из моих любимых сообщений:

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

Если вы используете PowerShell, обязательно добавьте «.exe», чтобы отличать любые псевдонимы «где» или скрипты по пути. ('where' является типичным псевдонимом для Where-Object.ps1)

C:\> where.exe where.exe
C:\Windows\System32\where.exe
ответил Kevin 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 11 Sep 2009 03:00:02 +0400 2009, 03:00:02
6

hackerish which.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) 
)
ответил akira 11 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 11 Sep 2009 01:08:24 +0400 2009, 01:08:24
6

Пожалуйста, используйте команду где :

> where app.exe

Это лучший способ достичь вашей цели.

Вы также можете использовать команду PowerShell:

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

и расширенная версия выглядит следующим образом:

 > $env:path.Split(';') | select -Unique | ? {$_ -and (test-path $_)} | gci -Filter app.exe
ответил Arek Bee 5 AM000000120000001031 2015, 00:39:10
2

Где-то «там» я нашел этот командный файл whereis.bat:

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

Обновление: возможно, я нашел его .

ответил Craig McQueen 9 22010vEurope/Moscow11bEurope/MoscowTue, 09 Nov 2010 08:00:01 +0300 2010, 08:00:01
1

Существует порт Windows для which.

ответил innaM 11 PM00000020000000331 2009, 14:53:03
0

Другой подход (GUI), но посмотрите Все .

ответил name 9 22010vEurope/Moscow11bEurope/MoscowTue, 09 Nov 2010 09:52:54 +0300 2010, 09:52:54
0

Я искал это сегодня, и поскольку я нахожусь на XP без комплекта ресурсов, я обратился к powershell со следующей командой:

dir -path c:\ -filter ffmpeg.* -r
ответил KalenGi 14 J000000Saturday12 2012, 19:46:06
0
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; 
}

Пример:

PS> найти 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        
ответил Rupert 5 +03002017-10-05T17:19:19+03:00312017bEurope/MoscowThu, 05 Oct 2017 17:19:19 +0300 2017, 17:19:19
-1

Вы можете попробовать найти команду, используя следующее:

dir /s type-whatever-you-are-searching
ответил Shakeel 11 PM00000050000004831 2009, 17:04:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132