How do I Start a job of a function i just defined?
function FOO { write-host \"HEY\" } Start-Job -ScriptBlock { FOO } |
Receive-Job
Receive-Job: The term \'
An improvement to @Rynant's answer:
You can define the function as normal in the main body of your script:
Function FOO
{
Write-Host "HEY"
}
and then recycle this definition within a scriptblock:
$export_functions = [scriptblock]::Create(@"
Function Foo { $function:FOO }
"@)
(makes more sense if you have a substantial function body) and then pass them to Start-Job as above:
Start-Job -ScriptBlock {FOO} -InitializationScript $export_functions| Wait-Job | Receive-Job
I like this way, as it is easier to debug jobs by running them locally under the debugger.