En utilisant l'APPEL pour les étiquettes dans un script batch
Lors de l'utilisation de la commande CALL pour appeler une étiquette dans un script batch, et à la fin de la sous-routine avec GOTO:eof, ce qui se passe à partir de là? Est-il retourner à l'endroit où la sous-routine d'APPEL est-elle située? Ou faut-il continuer sur après la localisation de l'appel du script?
Par exemple:
ECHO It's for my college fund.
CALL :OMGSUB
ECHO *runs away and cries like a little girl*
:OMGSUB
ECHO Your mom goes to college.
GOTO:eof
ECHO *picks up jewelry box*
Après GOTO:eof qui ligne echo prochaine?
Voir robvanderwoude.com/goto.php pour un exemple de comment utiliser les étiquettes pour créer des "sous-programmes" et comment sortir du lot sans répéter le contenu à l'intérieur de la sous-routine.
OriginalL'auteur Mechaflash | 2011-07-18
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas simplement de l'exécuter et de voir par vous-même? J'ai sauvé votre script dans un fichier batch appelé foo.chauve-souris, et j'ai changé le Votre maman va à l'université pour avoir un
echo
en face.De sorte qu'il est facile de voir que, après la
OMGSUB
est appelé, ilCALL :OMGSUB
et les échos de la "fugue" de la ligne deMechaflash, c'est trivial pour tenter, en fait. Je doute, c'est une bonne question que beaucoup de gens tombent dessus et d'être heureux de trouver une réponse. Mais j'ai peut-être tort.
Vous devez noter que toute commande passée après un goto ne sera jamais exécutée, comme votre ECHO ramasse boîte à bijoux. Pour éviter ces confussions je suggère de ne jamais utiliser le goto :eof et utilisez exit /b à la place.
C:\>APPEL de l'AIDE devrait vous donner plus d'informations.
OriginalL'auteur dcp
goto:eof se termine le "OMGSUB script" dans votre fichier de commandes. donc
se fera l'écho suivant.
OriginalL'auteur FluorescentGreen5