PowerShell相当于BASH(etc)'type'命令?

时间:2012-09-07 15:03:25

标签: windows shell powershell powershell-v2.0 command-line-interface

在* nix上,使用BASH(等)通过使用内置的'type'shell,询问系统命令所在的位置(等):

$ type cat
cat is /bin/cat

Microsoft PowerShell 2.0中是否存在等效的'type'命令?

3 个答案:

答案 0 :(得分:7)

等效值为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

答案 1 :(得分:1)

由于您使用Shell对其进行了标记,除了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

答案 2 :(得分:0)

Get-Command具有执行此操作的-ShowCommandInfo参数。它也适用于$ profile中定义的功能:

PS C:\Users\vp937ll> Get-Command l -ShowCommandInfo

Name          : l
ModuleName    :
Module        : @{Name=}
CommandType   : Function
Definition    : Get-ChildItem | Sort-Object -Property LastWriteTime -Descending
ParameterSets : {@{Name=__AllParameterSets; IsDefault=False; Parameters=System.Management.Automation.PSObject[]}}