Windows 用の「which」

Windows 用の「which」

重複の可能性あり:
Windows の whereis? に相当するもの

私は Unix システムで何が実行されるかを確認するために「which foo」と入力することに慣れています。

今日、Windows 上のプログラムで問題が発生しています。間違ったコマンドが実行されているのではないかと思います。cmd.exe から、「foo」と入力すると実際にどのプログラムが実行されるのかを判断するにはどうすればよいでしょうか。

答え1

「foo」の例を使って次のように入力することをお勧めします。

foo /?

これは、Linux で --help を追加した場合と同様に、Windows でも同様の効果が得られるはずです。ただし、常に効果があるとは限りませんが、何が起こっているのか、またコマンド構文の一部は正確にわかるはずです。

答え2

Windows用の「which」は知りませんが、コマンドラインから実行できます。パスファイルがどこで検索されるかを確認します。パスを順番に検索し、最初に見つかった実行可能ファイルを実行するものと思われます。

CMD.EXE も実行するプログラムを探すためにローカル ディレクトリを検索することに注意してください。これが優先されると思います。

答え3

さらに詳しくスティーブ答えから、検索%SYSTEM_ROOT%を実行してattrib'foo' がどこにあるかを確認し、%PATH% と比較してどちらが最初に実行されるかを確認できます。

attrib /s foo.exe
...
echo %PATH%

答え4

Cygwinに付属しているもの(http://cygwin.org) は cmd.exe から実行され、おそらくそれ以外は希望どおりに動作します。.bat を探している場合は、.bat を明示的に追加する必要があることに注意してください。たとえば、「which gorp.bat」では gorp.bat が見つかりますが、「which gorp」では見つかりません。

関連情報