2009-10-25 5 views
1

J'appelle un fichier de commandes dans un script nant et je souhaite obtenir la valeur (une chaîne de 5 caractères) revenir au script nant et continuer le script nant. S'il vous plaît suggérer comment cela peut être fait. Merci d'avance.Renvoyer une valeur à partir d'un script

+0

Que voulez-vous dire par " obtenir la valeur (une chaîne de 5 caractères) revient en arrière "? Vous ne pouvez pas renvoyer des caractères mais des niveaux d'erreur uniquement. –

Répondre

1

Je ne sais pas du tout, mais le moyen le plus courant pour un fichier batch de retourner des données est le ERRORLEVEL. Cependant, le niveau d'erreur est seulement numérique (1-255) AFAIK. Pour revenir un errorlevel, utilisez EXIT dans votre fichier batch:

EXIT 1

La deuxième façon serait de rendre votre sortie de fichier batch, la valeur ... Très risquée mais, comme autre sortie pourrait interférer avec elle.

La troisième manière consisterait à écrire le résultat dans un fichier (par exemple "appel commande> résultat.txt") et d'analyser nant le fichier. Dans chaque cas, vous devez analyser le résultat. La façon dont cela est le plus possible dépend de ce que vous pouvez faire.

2

Vous pouvez utiliser l'attribut resultproperty du exec task node

Votre fichier batch (foo.bat):

... 
@exit 101 

Votre code NAnt extrait:

<exec 
    program="C:\foo.bat" 
    resultproperty="bar" 
    failonerror="false" /> 
<echo message="batch returned ${bar}"/> 
Questions connexes