Je pense que vous devriez echo la variable% sortie% au lieu d'utiliser avec commande de sortie.
L'exemple suivant montre comment passer une chaîne de fichier batch à SSIS:
- Screenshot # 1 montre le contenu du fichier batch utilisé dans cet exemple.
- La capture d'écran # affiche la configuration Execute Process Task. La variable BatchOutput est de type chaîne.
- Capture d'écran # 3 montre que le groupe
Success
Script est ajouté après le lot exécution du processus de travail.
- Dans la tâche de script, j'ai le code affiché sous la section Code de tâche de script pour afficher le contenu de la variable BatchOutput.
- L'exécution de la tâche devrait montrer le contenu de la variable, qui est en fait le texte renvoyé par le fichier batch. référez la copie d'écran # .
Script Code de travail:(Utilisez le code ci-dessous pour remplacer la méthode Main() dans votre tâche de script)
VB code méthode Main() qui peut être utilisé dans SSIS 2005 and above
Public Sub Main()
Dim varCollection As Variables = Nothing
Dts.VariableDispenser.LockForRead("User::BatchOutput")
Dts.VariableDispenser.GetVariables(varCollection)
MessageBox.Show(varCollection("User::BatchOutput").Value.ToString())
Dts.TaskResult = ScriptResults.Success
End Sub
C# code méthode main() qui peut être utilisé uniquement dans SSIS 2008 and above
.
public void Main()
{
Variables varCollection = null;
Dts.VariableDispenser.LockForRead("User::BatchOutput");
Dts.VariableDispenser.GetVariables(ref varCollection);
MessageBox.Show(varCollection["User::BatchOutput"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
}
Hope that helps.
écran # 1:
écran # 2:
écran # 3:
Screenshot # 4:
Il est difficile de comprendre ce que votre problème. Vous devrez expliquer votre problème un peu mieux. Comment invoquez-vous votre fichier bat. Exit est une commande pour quitter l'exécution du cmd actuel, c'est ce que vous voulez? –