Powershell中命令* Nix'的等价物?

有谁知道如何问PowerShell的地方?
例如“哪个记事本”,并根据当前路径返回运行notepad.exe的目录。


一旦我开始在PowerShell中定制自己的配置文件,我创建的第一个别名是'which'。

New-Alias which get-command

要将此添加到您的配置文件,请输入:

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

`n是要确保它将作为一条新线开始。


这是一个实际的* nix等价物,即它给出* nix风格的输出。

Get-Command <your command> | Select-Object -ExpandProperty Definition

只需替换你正在寻找的任何东西。

PS C:> Get-Command notepad.exe | Select-Object -ExpandProperty Definition
C:Windowssystem32notepad.exe

将其添加到配置文件时,您将需要使用函数而不是别名,因为您不能使用管道的别名:

function which($name)
{
    Get-Command $name | Select-Object -ExpandProperty Definition
}

现在,当你重新加载你的个人资料时,你可以这样做:

PS C:> which notepad
C:Windowssystem32notepad.exe

我通常只是输入:

gcm notepad

要么

gcm note*

gcm是Get-Command的默认别名。

在我的系统上,gcm note *输出:

[27] » gcm note*

CommandType     Name                                                     Definition
-----------     ----                                                     ----------
Application     notepad.exe                                              C:WINDOWSnotepad.exe
Application     notepad.exe                                              C:WINDOWSsystem32notepad.exe
Application     Notepad2.exe                                             C:UtilsNotepad2.exe
Application     Notepad2.ini                                             C:UtilsNotepad2.ini

您将获得与您要查找的内容相匹配的目录和命令。

链接地址: http://www.djcxy.com/p/30237.html

上一篇: Equivalent of *Nix 'which' command in Powershell?

下一篇: MVP update view based on state