Dentro da minha sessão do Powershell, a palavra job
é reconhecida como uma "ação invocável":
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 ...
A saída de job
é a mesma de get-job
. Então, presumi que job
fosse uma função ou um alias ou um cmdLet. No entanto, este não parece ser o caso:
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.
Então, se job
não é um cmdlet nem função, nem alias, nem arquivo de script, o que é?
Você descobriu como o Powershell decide o que pretende executar. Para o que acontece, aqui está o que me foi dito, ou vi:
Quando você insere um comando, o PS procura...
Get-
prefixo a eleEssa sequência corresponde ao que me lembro do que li ou experimentei, mas posso ter deixado de fora uma ou duas etapas.
Embora eu nunca tenha encontrado nenhuma documentação oficial sobre isso, várias pessoas no subreddit Powershell do Reddit postaram sobre isso nos últimos anos. Presumo que alguém possa pesquisar o código GitHub do Powershell e encontrar o processo, mas nunca o fiz.
Eu também presumo que qualquer site de golfe com código focado em PS também teria algumas ideias sobre o que está envolvido.