PowerShell 无法解释 "which" 等命令

PowerShell fails to interpret commands such as "which"

我的 windows Powershell 在解释诸如“date”和“echo”之类的命令时给出了预期的结果,而在解释诸如“which”和“tail”之类的命令时却出现了问题。 我想可能是我没有把这些命令的地址添加到目标目录,但是我大概在哪里可以找到这些命令。

What happens when I apply "which", with the same thing happening when applying "tail"

whichtail外部程序的名称,与PowerShell无关。这些程序只能出现在 Unix-like 平台上,而不是(本地)在 Windows 上。 (但是,它们会出现在 Unix-like 子系统 on Windows 中,例如 WSL。)

相比之下,dateecho 内置于 PowerShell 中的(潜在)命令,无论它在什么平台上运行:

  • echo 是 PowerShell Write-Output cmdlet 在所有平台上的 别名

  • date - 除非该名称的外部程序存在于给定平台上 $env:PATH 中列出的目录中 - 指的是 内置 Get-Date cmdlet。

    • 注意:这依赖于 PowerShell 的 ill-conceived 默认动词 功能,如果未找到命令形式,该功能会在命令名称前加上 Get- 前缀通过给定的名称。为了概念清晰和避免不必要的开销,不应依赖这一点。此外,这种回退(意外地)不是 由下面讨论的 Get-Command 报告,也不是由 Get-Help - see GitHub issue #3987.
    • 报告

使用 Get-Command 确定给定名称引用的命令形式(如果有的话)(添加 -All 以查看是否可能存在 多个 形式,其中 有效 列在第一位)。