Windows用のwhichコマンドを作ってみた
Windows用のwhichコマンドをバッチファイルで作ってみました。Windows 2000以降であれば、たぶん動作すると思います。なお、@ITにも同じような記事(whichコマンドを作る)がありますが*1、こちらの方が以下の2つの点で優れています。(そのかわり、簡潔さは全くありませんが...)
使い方は簡単です。以下の内容のバッチファイルを、「which.cmd」もしくは「which.bat」という名前で保存し、パスの通ったディレクトリにコピーしてください。「which コマンド名」で、コマンドのパスが表示されます。
@echo off if "%~1" == "" exit /b 1 if /I "%~1" == "%~nx1" ( call :search ".\%~1" if not ERRORLEVEL 1 exit /b 0 ) call :search "%~1" exit /b %ERRORLEVEL% :search if "%~x1" == "" ( call :search_without_ext "%~1" ) else ( call :search_with_ext "%~1" ) exit /b %ERRORLEVEL% :search_without_ext for %%I in (%PATHEXT:;=,%) do ( call :search_with_ext "%~1%%I" if not ERRORLEVEL 1 exit /b 0 ) exit /b 1 :search_with_ext if "%~$PATH:1" == "" exit /b 1 echo %~$PATH:1 exit /b 0
覚え書き