Para uma função chamada test
:
$function:test
Ou se o nome da função contiver um hífen (por exemplo, test-function
):
${function:test-function}
Alternativamente:
(Get-Command test).Definition
Eu defini uma função dinâmica no powershell, assim:
> function test { dir -r -fil *.vbproj | ft directory, name }
Então eu posso apenas digitar test
e executar essa função, canalizando-a para outros comandos, etc. Muito útil.
Existe uma maneira de obter a definição do comando? Posso fazer o eco do código da minha função test
? (Sem ter que voltar pela minha história até onde eu a defini?)
(Get-Command Test).Definition
É assim que eu normalmente recebo definições.
As respostas atuais funcionarão apenas para funções que foram criadas localmente. Você pode, por exemplo, ver a definição de funções nativas como Get-EventLog
.
Para uma lista de todas as funções disponíveis, você pode executar:
Get-ChildItem Function::
Qualquer um destes pode ser passado para ${function:myFn}
ou (Get-Command myFn).Definition
Se você quiser dar uma olhada nas funções nativas, você pode executar [o seguinte código] [1:
$metadata = New-Object system.management.automation.commandmetadata (Get-Command Get-EventLog)
[System.management.automation.proxycommand]::Create($MetaData) | out-file C:\Get-EventLog.ps1
Tags powershell