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. .
De toute façon, je ne sais pas comment faire pour exécuter un fichier .bat, mais vous pouvez utiliser echo
et pause
pour aider au 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é. Cependant, sans @ECHO OFF au début du fichier batch, vous obtiendrez également "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 [~ # ~]
Invite l’utilisateur à appuyer sur n’importe quelle touche pour continuer.
Source: Aide de fichier batch
@ workmad3: answer a d'autres bons conseils pour travailler avec la commande echo
.
Une autre ressource utile ... DDB: Conseils sur les fichiers de commandes DOS
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 echo est laissé activé, l'interpréteur de commande affichera chaque commande (après le traitement des paramètres) 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 commandes, le niveau d'erreur est renvoyé dans la variable ErrorLevel et n'a pas besoin de%.
Face à des préoccupations similaires, j'ai trouvé l'outil suivant avec une recherche Google triviale:
" Take Command " de JPSoft inclut un fichier de traitement par lots IDE/débogueur. Leur courte vidéo de présentation le montre bien.
J'utilise la version d'essai depuis quelques heures. Voici mon premier humble avis:
Cela passe par un essai.
J'ai trouvé le logiciel 'winches' exécutant 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 dotée de fonctionnalités similaires?
rem outez le @ECHO OFF et appelez votre fichier de commandes redirecter TOUT la sortie dans un fichier journal.
c:> yourbatch.bat (paramètres facultatifs)> yourlogfile.txt 2> & 1
trouvé à http://www.robvanderwoude.com/battech_debugging.php
ÇA MARCHE!! n'oubliez pas les 2> et 1 ...
AS
La seule façon dont je puisse penser est de scintiller le code avec echo
s et pause
s.
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 plus, 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 la commande de votre script.
Ou .... Appelez votre fichier .bat principal à partir d'un autre fichier .bat et exportez le résultat dans un fichier de résultat, par exemple.
runner.bat> mainresults.txt
Où runner.bat appelle le fichier principal .bat
Vous devriez voir maintenant toutes les actions effectuées dans le fichier principal .bat