web-dev-qa-db-ja.com

WindowsのUnixの「which」コマンドに相当するものは何ですか?同等のPowerShellコマンドはありますか?

Linuxには、実行可能ファイルのパスを見つける「which」コマンドがあります。
それに相当するWindowsとは何ですか?それを行うためのPowerShellコマンドはありますか?

100
Invincible

Windowsの一部のバージョン(Windows 2003以降だと思います)にはwhereコマンドがあります。

c:\>where ping
C:\Windows\System32\PING.EXE
96
Randy Levy

はい、Get-Commandは実行可能ファイルを含むすべてのコマンドを検索します。

PS\> Get-Command ipconfig

コマンドを実行可能ファイルだけに制限したい場合:

PS\> Get-Command -CommandType Application

パス内のすべてのexeを検索します。インタラクティブな使用のためのエイリアスがあります:

PS\> gcm net* -CommandType Application

実行可能ファイルのパスを取得するには、返されたオブジェクトのPathプロパティを使用できます。例えば:

PS\> (Get-Command notepad.exe).Path

詳細については、man Get-Command -fullを実行してください。

44
user10404

where.exeではなく、明示的にwhereではなくPowerShellで機能します。

PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
4
drkvogel

短くしたい場合は、内容を記述した1行のwhich.cmdファイルを作成します。

echo %~$PATH:1

これにより、スクリプトに入力された最初のパラメーター(%1)が検索され、見つかったファイルの完全パスが表示されます。このスクリプトをWindows 10に配置するのに適した場所は、%LOCALAPPDATA%\ Microsoft\WindowsApps\which.cmdです。

そして、あなたはあなたのwhichコマンドをパスに入れます。

c:\>which cmd.exe

c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
2
Manu

User10404に加えて、helpコマンドはエイリアスに対しても機能するため、ヘルプとインタラクティブな使用に同じコマンド名(gcm)を使用できます。

help gcm -Parameter *
# or
man gcm -Par *
2
yzorg