*nix では、BASH (など) を使用して、次のように「type」シェル ビルトインを使用して、コマンドが配置されている場所 (など) をシステムに問い合わせます。
$ type cat
cat is /bin/cat
Microsoft PowerShell 2.0 に、この「type」コマンドに相当するものはありますか?
*nix では、BASH (など) を使用して、次のように「type」シェル ビルトインを使用して、コマンドが配置されている場所 (など) をシステムに問い合わせます。
$ type cat
cat is /bin/cat
Microsoft PowerShell 2.0 に、この「type」コマンドに相当するものはありますか?
同等のものは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
これをシェルでタグ付けしたので、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-Object
where