Linux では、実行ファイルのパスを調べるための “which” コマンドがあります。 Windowsに相当するものは何ですか?これを行うためのPowerShellコマンドはありますか?
112 None 2010-11-05
Windows の新しいバージョン(Windows 2003 以降だと思います)には where コマンドがあります
C:\>where ping
C:\Windows\System32\PING.EXE
また、PowerShellの場合は、.exeという接尾辞を明示的に追加します
PS C:\>where.exe ping
C:\Windows\System32\PING.EXE
110 Randy Levy 2010-11-05
はい、Get-Command
は実行ファイルを含むすべてのコマンドを検索します
PS\> Get-Command ipconfig
コマンドを実行ファイルだけに限定したい場合
PS\> Get-Command -CommandType Application
あなたのパスのすべての元彼を見つけるでしょう。対話的に使用するためのエイリアスがあります
PS\> gcm net* -CommandType Application
実行ファイルのパスを取得するには、返されたオブジェクトのPath
プロパティを使用します。例えば、以下のようになります
PS\> (Get-Command notepad.exe).Path
詳細については、man Get-Command -full
を実行してください
51 user10404 2010-11-05
PowerShellでは、where
ではなくwhere.exe
を明示的に使うとうまくいきます
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
7 drkvogel 2019-09-26
user10404以外にも、ヘルプコマンドはエイリアスでも動作しますので、同じコマンド名(gcm)でヘルプと対話的に使用することができます
help gcm -Parameter *
# or
man gcm -Par *
3 yzorg 2010-11-08
簡潔にしたい場合は、1行のwhich.cmdファイルを作成して内容を記述します
echo %~$PATH:1
これは、スクリプトに与えられた最初のパラメータ (%1) を検索し、見つかったファイルのフル・パスを表示します。このスクリプトを Windows 10 に配置するのに適した場所は、%LOCALAPPDATA%\Microsoft\WindowsApps\which.cmd です
そして、パスの中にどのコマンドがあるのかがわかるようになります
c:\>which cmd.exe
c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
3 Manu 2017-11-07
Cmd
where
C:\Users\X>where ping
C:\Windows\System32\PING.EXE
C:\Users\X>
Powershell
Get-Command
PS C:\Users\X> Get-Command ping
CommandType Name Version Source
----------- ---- ------- ------
Application PING.EXE 10.0.1776… C:\WINDOWS\system32\PING.EXE
PS C:\Users\X>
0 Joma 2020-05-04