Windows の PowerShell で where.exe を使うとコマンドの実行場所を調べられるメモ

Windows の PowerShell で where.exe を使うとコマンドの実行場所を調べられるメモ

Windows の PowerShell で where.exe を使うとコマンドの実行場所を調べられるメモです。

背景

Linux を使っているときの which のようにコマンドの実行場所が分かるといいなーと思って Claude に質問してたら PowerShell で where.exe を使うといいよと言われて学びになりました。

その上で、調べてみると、

Where (ファイルの場所の表示) - DOS/コマンドプロンプト コマンド一覧

こちらの記事にも言及がありました。

使い方

たとえば node の実行場所を見たい場合は、PowerShell で

where.exe node

と実行します、

C:\Program Files\Volta\node.exe

私の場合このような結果が返ってきました。

たとえば php のようなインストールしてないコマンドの場合は、

where.exe php
情報: 与えられたパターンのファイルが見つかりませんでした。

このように返ってきます。

PowerShell で where ではなく where.exe にしなくてはいけない理由ですが、PowerShell では where が Where-Object のエイリアスとして設定されているそうで、そのため、PowerShell 内で where.exe を実行するには明示的に .exe 拡張子を付ける必要があるそうです。

コマンドがうまくインストールされたかや、コマンドに紐づく設定ファイルがありそうなパスを探るときに役立ちますね。勉強になりました!