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


回答:


79

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

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

5
whereWindows 7で私のために働く
Nam G VU

6
これはcmdでのみ機能し、PowerShellでは機能しません(私の経験では)
Thomas

where /r c:\ fileName/ RCを追加:\私はであることではないように思われるのWindows 7 Professionalを使用してCドライブのルートから始まる再帰検索を実行することを許可access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...
CrandellWS

6
PowerShellではあなたが言うべきでwhere.exe pingあるためwhereにエイリアスデフォルトでWhere-Object全く別の話ですレット
maoizmは

where.exe明示的ではなく、wherePowerShellで私のために働く
drkvogel

36

はい、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


2

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

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

2

短くしたい場合は、コンテンツを含む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

1

where.exewherePowerShellで私のために働くのではなく、明示的に:

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

Windowsの10 1903上で動作します
Ultrasonic54321

PowerShellで?私はWindows 10 Pro 1903 where pingを使用していますが、PowerShellでは何も提供しません。
drkvogel

すみません、はっきりしませんでした。私が意味したwhere.exe
Ultrasonic54321
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.