Vistaの新規コマンドwhereはUnixのwhich

Windows Vistaにてwhereというコマンドプロンプトのコマンドが新しく追加されている。

Unixのwhichと同じでパスの通ったファイルがどこにいるか教えてくれる。

C:\Users\oe-roel>where java
C:\Program Files\Java\jdk1.6.0_07\bin\java.exe

他人のサポートでjavaやらのバージョン確認するときに便利そう。

こういうこともできます。

REM 全てのパスの通っている実行可能ファイルを列挙
where *.exe

REM 表示されるパスがダブルクォートで囲まれる
$> where /F java
"C:\Program Files\Java\jdk1.6.0_07\bin\java.exe"
REM ファイルサイズ表示
$> where /T java
    163328   2008/06/10       2:36:52  C:\Program Files\Java\jdk1.6.0_07\bin\java.exe

ただ、このコマンド自体はもともと実行ファイルがどこにあるかを教えるコマンドではなく、ファイルを検索するコマンドで、たまたまデフォルトが環境変数PATHのディレクトリにてファイル検索するということになっているに過ぎないっぽい。

REM where ディレクトリパス:検索ワイルドカードパターン

REM C:\の下のファイルを全部表示
$> where C:\:*
REM フォルダの下のファイルを全部表示
$> where C:\WINDOWS\System32:*

REM where $環境変数名:検索ワイルドカードパターン
REM JAVA_HOMEの下のファイルを全部表示
$> where $java_home:*

REM C:\WINDOWS下のhlpおよびgifファイルを全部表示
$> where /R C:\WINDOWS *.hlp *.gif