Unixの “which “コマンドのWindowsでの等価なものは何ですか?同等のPowerShellコマンドはありますか?

command-line powershell which windows

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


タイトルとURLをコピーしました