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
Répondre
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.
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}"/>
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. –