it-swarm.asia

Whereis eşdeğer Windows mu?

Windows'ta Unix whereis komutunun bir karşılığı var mı?

Böylece, hangi komutları çalıştırabileceğimi öğrenebilirdim.

159
Svish

where komutu istediğinizi yapar ve en azından Windows 98 için kaynak setine geri döner ve varsayılan olarak Server 2003, Vista ve daha yenisine eklenir:

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

Argüman olmadan çalıştırılırsa (Vista'da), en sevdiğim mesajlardan biriyle sonuçlanır:

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

PowerShell'de çalıştırılıyorsa, yol boyunca takma ad veya komut dosyalarından ayırt etmek için '.exe' kullandığınızdan emin olun. ('where' Where-Object.ps1 için tipik bir diğer addır)

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

Lütfen, where komutunu kullanın:

> where app.exe

Hedefinize ulaşmak için en iyi yoldur.

PowerShell komutunu da kullanabilirsiniz:

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

ve genişletilmiş sürüm şöyle görünür:

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

hackerish hangi.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

Bir yerde "dışarıda" Bu toplu iş dosyasını whereis.bat olarak buldum:

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

Güncelleme: belki onu buldum burada .

3
Craig McQueen

which yardımcı programı için en az bir Windows bağlantı noktası vardır.

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; 
}

Örnek:

PS> Mozilla.admx'i bulun

    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

Bugün bunu araştırıyordum ve kaynak kiti olmadan XP üzerinde olduğum için aşağıdaki komutu kullanarak powershell'e döndüm:

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

Farklı (GUI) bir yaklaşım, fakat Her şeye .

0
name