回答:
どこコマンドが何をしたい行い、少なくとも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で)実行すると、私のお気に入りのメッセージの1つが表示されます。
C:\>where
ERROR: The operation completed successfully.
PowerShellで実行する場合は、パスに沿った「where」エイリアスまたはスクリプトと区別するために「.exe」を必ず含めてください。(「where」はWhere-Object.ps1の一般的なエイリアスです)
C:\> where.exe where.exe
C:\Windows\System32\where.exe
where
だけで自分のためにそれを見たかったのWindows 7になりました使用方法のヘルプを返します:P
where
XPでは利用できません
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)
)
どこか「そこに」私はこのバッチファイルを見つけましたwhereis.bat
:
@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i
ユーティリティ用のWindowsポートが少なくとも1つありwhich
ます。
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