2011-08-10 3 views
3

J'ai ce script PowerShell (test1.ps1) appelant un autre script PowerShell (test2.ps1) pour faire le travail.Scripts Powershell invoqués par l'application C#

Les deux scriptfiles sont dans le même dossier

test1.ps1

echo "from test1.ps1" 

.\test2.ps1 

test2.ps1

echo "from test2.ps1" 

Quand j'invoque test1.ps1 en C# en créant runspace , en ajoutant des commandes à pipeline et en l'invoquant, j'obtiens un message d'erreur disant "Le terme '. \ Test2.ps1' n'est pas reconnu comme le nom d'une cmdlet, d'une fonction, d'un fichier de script ou d'un programme utilisable. Vérifiez l'orthographe du nom, ou si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. "

+0

S'il vous plaît montrer le code que vous utilisez pour appeler les scripts. –

Répondre

4

Les deux scripts peuvent être dans le même dossier, mais .\test2.ps1 rechercheront test2.ps1 dans le . même dossier que l'application appelante, qui est l'application C#

ceci dans test.ps1:

$scriptDir = Split-Path -parent $MyInvocation.MyCommand.Path 
.$scriptdir\test2.ps1 
Questions connexes