web-dev-qa-db-ja.com

Unixの `which`コマンドと同等のPowerShell?

PowerShellには、ほとんどの(すべてではないにしても)Unixシェルにあるwhichコマンドと同等のものはありますか?

コマンドラインから実行しているものの場所を知りたいことがよくあります。 Unixではwhich <command>、それは私に教えてくれます。 PowerShellで同等のものを見つけることができません。

76
Herms

これはスタックオーバーフローで尋ねられ、答えられました:PowerShellの* Nix 'which'コマンドに相当しますか?

PowerShellでプロファイルのカスタマイズを開始したときに最初に作成したエイリアスは、「それ」でした。

コマンドを取得する新しいエイリアス

これをプロファイルに追加するには、次のように入力します。

"` nNew-Alias which get-command "| add-content $ profile

最後の行の先頭にある `nは、新しい行として開始することを保証するためのものです。

78
user4358

PowerShell 3.0以降では、

(Get-Command cmd).Path

これは、System.Stringを返すというVanilla Get-Commandよりも優れているので、慣れているようなきれいな* nixyの1行の出力を取得できます。 gcmエイリアスを使用すると、11文字まで使用できます。

(gcm cmd).Path
40
FLGMwt

また、2008年に回答: Windowsコマンドラインに 'which'に相当するものはありますか?

リソースキットをインストールしている場合は、 where コマンドを試してください。

答えの最も重要な部分:

Windows Server 2003以降では、実行可能なコマンドだけでなく、すべてのタイプのファイルに一致しますが、一部の機能を実行するWHEREコマンドを提供しています。

[をちょきちょきと切る]

Windows PowerShellでは、where.exeと入力する必要があります。

7
Anonymous
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}
3
hshen