当前位置:  开发笔记 > 开发工具 > 正文

相当于*Nix'在PowerShell中的命令?

如何解决《相当于*Nix'在PowerShell中的命令?》经验,为你挑选了5个好方法。

我如何询问PowerShell的位置?

例如,"notepad",它根据当前路径返回运行notepad.exe的目录.



1> halr9000..:

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

New-Alias which get-command

要将此添加到您的个人资料,请输入以下内容

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

最后一行开头的`n是确保它将作为新行开始.


我喜欢运行:`Get-Command | 格式 - 表路径,名称`所以我可以得到命令所在的路径.
函数($ cmd){get-command $ cmd | 选择路径}
如果你想要给你提供路径的Unix风格的行为,你需要将get-command的输出传递给`select -expandproperty Path`.
有没有办法让路径一直没有输入'| 格式 - 表路径,名称'?

2> petrsnd..:

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

Get-Command  | Select-Object -ExpandProperty Definition

只需替换你想要的任何东西.

PS C:\> Get-Command notepad.exe | Select-Object -ExpandProperty Definition
C:\Windows\system32\notepad.exe

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

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

现在,当您重新加载配置文件时,您可以执行以下操作:

PS C:\> which notepad
C:\Windows\system32\notepad.exe


我使用这种替代语法:"(Get-Command notepad).definition"
@ B00merang您的语法很棒-绝对更加简洁-但不幸的是,即使删除了管道,也不能将其作为别名添加,除非您包含要查找的程序的名称。

3> David Mohund..:

我通常只输入:

gcm notepad

要么

gcm note*

gcm是Get-Command的默认别名.

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

[27] » gcm note*

CommandType     Name                                                     Definition
-----------     ----                                                     ----------
Application     notepad.exe                                              C:\WINDOWS\notepad.exe
Application     notepad.exe                                              C:\WINDOWS\system32\notepad.exe
Application     Notepad2.exe                                             C:\Utils\Notepad2.exe
Application     Notepad2.ini                                             C:\Utils\Notepad2.ini

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


@PiyushSoni,可能是因为PowerShell的更新版本.您可以通过执行类似`gcm note*|的操作来显示其他列 选择CommandType,Name,Definition`.如果你经常运行它,你应该把它包装在一个函数中.

4> 小智..:

试试这个例子:

(Get-Command notepad.exe).Path


感谢您添加更少的代码,因此我实际上可以记住这一次:P
请添加更多代码或说明,以便OP可以更好地了解您。谢谢。

5> 小智..:

我对Who函数的主张:

function which($cmd) { get-command $cmd | % { $_.Path } }

PS C:\> which devcon

C:\local\code\bin\devcon.exe

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有