Existe-t-il un moyen de parcourir un script .bat? Le fait 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 sache exactement où je dois aller et ajouter mes modifications .
windows
batch-file
debugging
cmd
Vhaerun
la source
la source
Réponses:
Je ne sais pas de toute façon pour exécuter l'exécution d'un fichier .bat mais vous pouvez utiliser
echo
etpause
aider au débogage.Source: Aide sur les fichiers batch
@ workmad3: answer a d'autres bons conseils pour travailler avec la
echo
commande.Une autre ressource utile ... DDB: Astuces pour les fichiers batch DOS
la source
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 ceux que vous avez manqués.
La raison en est que si l'écho est laissé activé, l'interpréteur de commandes affichera chaque commande (après le traitement des paramètres) avant de l'exécuter. Le rend vraiment mauvais pour une utilisation en production, mais très utile à des fins de débogage, car vous pouvez voir où la sortie a mal tourné.
Assurez-vous également de vérifier les niveaux d'erreur définis par les scripts et programmes batch appelés. N'oubliez pas 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 qu'à partir des fichiers de commandes, le niveau d'erreur est renvoyé dans la variable ErrorLevel et n'a pas besoin de% autour de lui.
la source
Face à une préoccupation similaire, j'ai trouvé l'outil suivant avec une recherche Google triviale:
" Take Command " de JPSoft comprend un IDE / débogueur de fichier batch. Leur courte vidéo de présentation le démontre bien.
J'utilise la version d'essai depuis quelques heures. Voici mon premier avis humble:
Il mérite un essai.
la source
Always quote the most relevant part of an important link
. Sans le lien, cette réponse se dissout, ce qui, encore une fois, est probablement bien, mais ce type de suggestion ad hoc d'un logiciel propriétaire non testé conviendrait généralement mieux à un commentaire. N'hésitez pas à le laisser également.J'ai trouvé le logiciel 'running steps' (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 voyant les variables de sortie et d'environnement.
La version d'évaluation ne permet que de parcourir 50 lignes ... Quelqu'un a-t-il une alternative gratuite avec des fonctionnalités similaires?
la source
Rem out the @ECHO OFF et appelez votre fichier batch en redirigeant TOUTE la sortie vers un fichier journal.
c:> yourbatch.bat (paramètres optionnels)> yourlogfile.txt 2> & 1
trouvé à http://www.robvanderwoude.com/battech_debugging.php
ÇA MARCHE!! n'oubliez pas les 2> & 1 ...
AS
la source
La seule façon dont je peux penser est de spinkle le code avec
echo
s etpause
s.la source
Avez-vous essayé de rediriger le résultat vers un fichier? Comme tout .bat> log.txt
Vous devez vous assurer que dans ce cas, tous les autres scripts appelés se connectent également au fichier comme >> 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 les heures auxquelles il était à ce moment-là et vous pourrez mapper le temps d'exécution et l'ordre de votre script.
la source
Ou .... Appelez votre fichier .bat principal à partir d'un autre fichier .bat et affichez le résultat dans un fichier de résultat, c.-à-d.
runner.bat> mainresults.txt
Où runner.bat appelle le fichier .bat principal
Vous devriez voir toutes les actions effectuées dans le fichier principal .bat maintenant
la source
Un problème assez fréquent est qu'un script batch est exécuté en double-cliquant sur son icône. Étant donné que l'
cmd.exe
instance de l' invite de commande d'hébergement ( ) se termine également, il n'est pas possible de lire les messages d'erreur et de sortie potentiels.Pour lire de tels messages, il est très important que vous ouvriez explicitement une fenêtre d'invite de commandes, que vous vous dirigiez vers le répertoire de travail applicable et que vous exécutiez le script de commandes en tapant son chemin / nom.
la source
vous pouvez utiliser
cmd \k
à la fin de votre script pour voir l'erreur. il ne fermera pas votre invite de commande une fois l'exécution terminéela source
ou, ouvrez une fenêtre cmd, puis appelez le lot à partir de là, la sortie sera à l'écran.
la source