Windows'ta Unix whereis komutunun bir karşılığı var mı?
Böylece, hangi komutları çalıştırabileceğimi öğrenebilirdim.
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
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
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)
)
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 .
which
yardımcı programı için en az bir Windows bağlantı noktası vardır.
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
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
Farklı (GUI) bir yaklaşım, fakat Her şeye .