在我的 Powershell 会话中,该词job
被识别为“可调用的操作”:
PS C:\Users\Rene\> job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Completed True localhost ...
3 Job3 BackgroundJob Completed True localhost ...
5 Job5 BackgroundJob Completed True localhost ...
7 Job7 BackgroundJob Completed True localhost ...
9 Job9 BackgroundJob Completed True localhost ...
的输出job
与 的输出相同get-job
。因此,我假设job
是一个函数或别名或 cmdLet。然而,事实似乎并非如此:
PS C:\Users\Rene> get-command job
get-command : The term 'job' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path
was included, verify that the path is correct and try again.
那么,如果job
它既不是 cmdlet 也不是函数,也不是别名,也不是脚本文件,那它是什么?
答案1
你已经了解了 Powershell 如何决定你打算逃跑。至于接下来发生的事情,以下是我所听到的或所看到的:
当您输入命令时,PS 会查找...
- 您输入的确切命令
- 查找操作系统路径列表中的精确命令
Get-
带有前缀的命令
该顺序与我记得的读过或经历过的内容相符,但我可能遗漏了一两步。
虽然我从未找到过关于此问题的任何官方文档,但 Reddit 上的一些人Powershell 子版块过去几年里我发过很多帖子。我假设人们可以深入研究 Powershell GitHub 代码并找到该过程,但我从未这样做过。
我还推测任何以 PS 为重点的代码高尔夫网站也会对所涉及的所有内容有一些想法。