@EXECSTR[[n,]commande] : Exécute la commande spécifiée et renvoie la ligne n (ou la première ligne si n n 'est pas spécifié) écrite sur stdout par la commande. Par exemple, pour renvoyer la troisième ligne renvoyée par VER /R :
echo %@execstr[2,ver /r]
Si n est négatif, @EXECSTR commence à la dernière ligne et compte à rebours.
@EXECSTR est utile pour récupérer un résultat à partir d'un utilitaire externe. Par exemple, si vous disposez d'un utilitaire externe appelé NETTIME.EXE qui récupère l'heure de votre serveur réseau et l'écrit sur la sortie standard, vous pouvez l'enregistrer dans une variable d'environnement à l'aide d'une commande comme celle-ci :
set server_time=%@execstr[d:\path\nettime.exe]
Si le même utilitaire renvoie un résultat correctement formaté pour la commande TIME, vous pouvez également l'utiliser pour régler l'heure sur votre système :
time %@execstr[d:\path\nettime.exe]
@EXECSTR peut également être utilisé avec des commandes internes :
echo Newest file is: %@execstr[*dir /a:-d /h /o:-d /f]
@EXECSTR implique plusieurs étapes de traitement interne approfondi. Il est possible d'utiliser des séquences de commandes plus complexes (pipes, groupes de commandes, etc.) en tant que paramètre, mais testez toujourssoigneusement au préalable, car les résultats ne sont pas toujours ceux que vous attendez. Nous vous recommandons de n'utiliser qu'un seul paramètre de commande (interne, externe, fichier batch, etc.).
Voir aussi _EXECSTR, @EXEC et @EXECARRAY.