J'ai deux fichiers PowerShell. a.ps1 et b.ps1.
À un point central dans a.ps1, je veux commencer à exécuter du code dans b.ps1 et terminer le script a.ps1.
Comment faire en considérant que les deux fichiers se trouvent dans le même dossier?
powershell
window
GibboK
la source
la source
Réponses:
Est-ce correct si b.ps1 est exécuté dans un nouveau processus Power Shell? Si c'est le cas, ce qui suit devrait faire ce que vous décrivez.
"Invoke-Expression" s'exécute dans le même processus mais attend la fin de b.ps1.
la source
Dans a.ps1,
la façon dont vous invoquez d'autres programmes
la source
je l'ai obtenu d'un article différent mais il peut s'appliquer ici: merci ( /programming//users/3905079/briantist )
Tout d'abord, si vous souhaitez effectuer plusieurs appels en une seule session vers une machine distante, créez d'abord une session PSSession:
Utilisez ensuite cette session dans tous les appels suivants:
} Fermez ensuite la session lorsque vous avez terminé:
aussi si vous ne savez pas exactement ce que sera le script, mais sachez que votre script démarre, vous pouvez le faire:
(c'est à moi)
la source
Utilisez la variable magique $ PSScriptRoot pour faire référence à votre répertoire actuel. Appelez ensuite le script B avec l'esperluette ("Opérateur d'appel"):
Si vous souhaitez conserver les variables de B dans la portée de A, vous pouvez exécuter le script à l'aide de l'opérateur de sourcing Dot:
la source