Windowsで「which」コマンドを使う
検索したのだけど、ちょっと満足できなかったので、自作した。
(pathext固定が嫌とか、長いとか、無意味な不満です、はい)
車輪の再発明も甚だしいところ。
結論
以下のbatスクリプトをpathの通っているところに置く。
which.bat
@echo off rem which rem pathextから対象拡張子を列挙 setlocal enabledelayedexpansion set whichTar=%1 set whichTar=!pathext:.=%whichTar%.! rem 探して表示 for %%I in (%1;%whichTar%) do if exist %%~$path:I echo %%~$path:I rem 片付け set whichTar= endlocal
遅延評価を使うので、XP以降だったかな。
小技
環境変数には簡単な置換機能がある。
遅延評価を使えば、変数を置換に利用することも可能。