Comment démarrer un travail d'une fonction que je viens de définir?
Comment puis-je Commencer un emploi d'une fonction que j'ai juste défini?
function FOO { write-host "HEY" } Start-Job -ScriptBlock { FOO } |
Receive-Job
Receive-Job: The term 'FOO' is not recognized as the name of cmdlet,
function ,script file or operable program.
Que dois-je faire?
Merci.
source d'informationauteur Alex58
Vous devez vous connecter pour publier un commentaire.
@Shay points,
FOO
doit être défini pour le travail. Une autre façon de le faire est d'utiliser la-InitializationScript
paramètre pour préparer la séance.Pour votre exemple:
Cela peut être utile si vous souhaitez utiliser les mêmes fonctions pour les différents travaux.
@Rynant la suggestion de
InitializationScript
est grandeJe pensais que le but de (script) les blocs de sorte que vous pouvez passer autour de lui. Donc, en fonction de comment vous le faites, je dirais allez -:
Bien sûr, vous pouvez paramétrer les blocs de script ainsi:
La fonction doit être à l'intérieur de la scriptblock:
Une amélioration de @Rynant réponse:
Vous pouvez définir la fonction normale dans le corps principal de votre script:
et puis de recycler cette définition dans un scriptblock:
(plus de sens si vous avez un grand corps de la fonction), puis à les transmettre à
Start-Job
comme ci-dessus:J'aime cette façon, comme il est plus facile à déboguer des emplois en exécutant localement sous le débogueur.