10

*nix では、BASH (など) を使用して、次のように「type」シェル ビルトインを使用して、コマンドが配置されている場所 (など) をシステムに問い合わせます。

$ type cat
cat is /bin/cat

Microsoft PowerShell 2.0 に、この「type」コマンドに相当するものはありますか?

4

4 に答える 4

14

同等のものはGet-Command.

PS C:\> Get-Command ls

CommandType     Name       Definition
-----------     ----       ----------
Alias           ls         Get-ChildItem
Application     ls.exe     D:\usr\local\wbin\ls.exe
Application     ls.exe     C:\Program Files (x86)\Git\bin\ls.exe

Windows 10 アップデート:

この回答を投稿してから、 の動作Get-Commandが変更されたようです。すべての結果を ( Un*x) のスタイルで) 含めるには、次のようtypeにフラグを渡す必要があります。-All

PS C:\> Get-Command -All ls

CommandType     Name                 Version    Source
-----------     ----                 -------    ------
Alias           ls -> Get-ChildItem
Application     ls.exe               0.0.0.0    C:\Program Files (x86)\Git\usr\bin\ls.exe

コメントに記載されているように、これには以前の動作のように列が含まれていません。Definition定義列を追加するためのコマンドライン引数を特定できませんが、以下のコメントで @voutasaurus が指摘したように、次を使用できます。

PS C:\> (Get-Command -All ls).Definition
Get-ChildItem
C:\Program Files (x86)\Git\usr\bin\ls.exe

参照用のバージョン情報 (元の回答テキストに関連付けられているバージョン情報はありませんが、Windows 7 だったと思います):

PS C:\> [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      15063  0
于 2012-09-07T15:06:10.850 に答える
1

これをシェルでタグ付けしたので、PowerShell の に加えて、次のGet-Commandものがありwhere.exeます。

PS C:\> where.exe notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

このコマンドは、パスを介して指定された名前のファイルを検索するだけです。

PS C:\> where.exe readme.*
C:\Python31\README.txt
C:\Program Files (x86)\wget\README
C:\Program Files (x86)\SysinternalsSuite\readme.txt

このコマンドを PowerShell から呼び出す場合は、が にエイリアスされているwhere.exeため、 として呼び出す必要があることに注意してください。Where-Objectwhere

于 2018-01-01T22:21:17.523 に答える