Question

Existe-t-il un moyen de parcourir un script .bat? Le problème, c’est que j’ai un script de construction, qui appelle beaucoup d’autres scripts, et j'aimerais voir quel est l’ordre dans lequel ils sont appelés, afin que je puisse savoir exactement où je dois aller et ajouter mes modifications. .

Était-ce utile?

La solution

Je ne sais pas comment faire pour exécuter un fichier .bat, mais vous pouvez utiliser echo et pause pour faciliter le débogage.

  

ECHO
  Répondra à un message dans le fichier de commandes. Tels que ECHO, Hello World imprimera Hello World à l’écran lorsqu’il sera exécuté. Toutefois, sans @ECHO OFF au début du fichier de commandes, vous obtenez également le message "ECHO Hello World". et "Hello World". Enfin, si vous souhaitez simplement créer une ligne vide, tapez ECHO. l'ajout du point à la fin crée une ligne vide.

     

PAUSE
  Invitez l’utilisateur à appuyer sur n’importe quelle touche pour continuer.

Source: Aide sur les fichiers de traitement par lots

@ workmad3: answer propose d'autres astuces pour travailler avec la commande echo .

Une autre ressource utile ... DDB: Conseils relatifs aux fichiers de commandes DOS

Autres conseils

Assurez-vous qu'il n'y a pas d'instructions 'echo off' dans les scripts et appelez 'echo on' après avoir appelé chaque script pour réinitialiser celles que vous avez manquées.

La raison en est que si l'écho est activé, l'interpréteur de commande affichera chaque commande (après le traitement du paramètre) avant de l'exécuter. Cela semble vraiment mauvais pour une utilisation en production, mais très utile pour le débogage car vous pouvez voir où la sortie a mal tourné.

Assurez-vous également que vous vérifiez les niveaux d’erreur définis par les scripts et les programmes de traitement par lots appelés. Rappelez-vous qu’il existe 2 méthodes différentes utilisées dans les fichiers .bat pour cela. Si vous avez appelé un programme, le niveau d'erreur est dans% ERRORLEVEL%, tandis que dans les fichiers de traitement par lots, le niveau d'erreur est renvoyé dans la variable ErrorLevel et ne nécessite pas le symbole%.

Face à une préoccupation similaire, j'ai trouvé l'outil suivant avec une recherche Google triviale:

Prendre une commande de JPSoft " inclut un fichier batch IDE / débogueur. Leur courte vidéo de présentation en fait la démonstration.

J'utilise la version d'essai depuis quelques heures. Voici mon premier humble avis:

  • D'un côté, cela permet en effet de déboguer les scripts .bat et .cmd et je suis maintenant convaincu que cela peut aider dans de nombreux cas
  • D'un autre côté, il se bloque parfois et je dois le tuer ... spécialement lors du débogage des indices (pas toujours systématiquement) .. il ne montre pas de "pile d'appels". ni un "sortir" & bouton.

Cela passe par un essai.

J'ai trouvé un logiciel 'en cours d'exécution' (win32) faisant exactement ce que je cherchais: http://www.steppingsoftware.com/

Vous pouvez charger un fichier bat, placer des points d'arrêt / commencer à le parcourir tout en consultant les variables de sortie et d'environnement.

La version d'évaluation ne permet de parcourir que 50 lignes ... Quelqu'un a-t-il une alternative gratuite avec des fonctionnalités similaires?

retirez le @ECHO OFF et appelez votre fichier de commandes redirect dans TOUT la sortie dans un fichier journal.

c: > yourbatch.bat (paramètres facultatifs) > yourlogfile.txt 2 > & amp; 1

trouvé à l'adresse http://www.robvanderwoude.com/battech_debugging.php

CELA FONCTIONNE !! n'oubliez pas les 2 > & amp; 1 ...

WIZ

La seule façon dont je puisse penser est de scintiller le code avec echo et de pause .

Avez-vous essayé de rediriger le résultat vers un fichier? Comme quoi que ce soit.bat > log.txt

Vous devez vous assurer que, dans ce cas, chaque autre script appelé se connecte également au fichier, tel que > > log.txt

.

De même, si vous mettez une date / T et une heure / T au début et à la fin de ce fichier de commandes, vous obtiendrez l'heure à laquelle il se trouvait à ce moment-là et vous pouvez mapper l'heure et l'ordre d'exécution du script.

Ou .... Appelez votre fichier .bat principal à partir d'un autre fichier .bat et exportez le résultat dans un fichier de résultat, i.e.

runner.bat > mainresults.txt

Où runner.bat appelle le fichier .bat principal

Vous devriez maintenant voir toutes les actions effectuées dans le fichier .bat principal

ou, ouvrez une fenêtre de commande, puis appelez le lot à partir de là, le résultat sera affiché à l'écran.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top