which
PowerShell 是否有与大多数(如果不是全部)Unix shell 中的命令等效的命令?
很多时候,我都想知道从命令行运行的某个程序的位置。在 Unix 中,我只需输入which <command>
,它就会告诉我。我在 PowerShell 中找不到等效的命令。
答案1
Stack Overflow 上有人提出这个问题并给出了答案:PowerShell 中 *Nix‘哪个’命令的等效项?
当我在 PowerShell 中开始自定义我的配置文件时,我创建的第一个别名是“which”。
New-Alias 获取命令
要将其添加到您的个人资料,请输入:
“`nNew-Alias 获取命令”| 添加内容 $profile
最后一行开头的 `n 是为了确保它将作为新行开始。
答案2
从 PowerShell 3.0 开始,你可以这样做
(Get-Command cmd).Path
与普通的 Get-Command 相比,它还有一个好处,即返回一个,System.String
这样您就可以获得干净的 *nixy 单行输出,就像您可能习惯的那样。使用 gcm 别名,我们可以将其缩减为 11 个字符。
(gcm cmd).Path
答案3
2008 年也回答过:Windows 命令行上是否有与‘which’等效的命令?
尝试where
如果您安装了资源工具包,则命令。
答案中最重要的部分:
Windows Server 2003 及更高版本提供了
WHERE
执行部分功能的命令,但它匹配所有类型的文件,而不仅仅是可执行命令。[剪辑]
在 Windows PowerShell 中,您必须键入
where.exe
。
答案4
function which([string]$cmd) {gcm -ErrorAction "SilentlyContinue" $cmd | ft Definition}