J'ai hérité de grands fichiers de lots et j'aimerais les réécrire à une langue plus "développeuse conviviale".
J'aimerais connaître les choses suivantes: p>
Pour le dernier point, je suis au courant que je puisse faire cela avant de commencer: p> et après mon fonctionnement, je peux le faire: p> et juste faire une difforme entre eux ... mais je vais manquer des variables qui peuvent être déséquiées lorsque le script se termine (ou même tous si le script est a couru sous Y a-t-il un moyen de trouver toutes ces choses sans moi ajouter des tonnes d'instructions d'écho tout au long du code de script?
Y a-t-il un tel outil capable de surveiller le processus lancé par le fichier de commandes et de me dire tout ce qu'il faisait? P> p> setLocal code>). P>
4 Réponses :
Vous pouvez simplement regarder en eux et comprendre ce qu'ils font. P>
Vous pouvez également supprimer tout Il n'y a pas d'outil de débogage pour les fichiers par lots que je suis au courant, mais j'ai envisagé d'écrire une une fois. P> Echo Off code> instructions et
@ code> commandes précédentes; Ainsi, chaque commande est sortie avant son exécution et vous pouvez rediriger la sortie dans un fichier pour l'étudier plus tard. P>
Oui, mais je devrais m'assurer que tous les autres scripts sont appelés, ne pas avoir le echo off code>. Je pense à la même chose à propos de l'outil :)
@Geo: Le problème avec un tel outil serait que vous devez modéliser avec précision le comportement de CMD. Et vous ne pouvez pas simplement exécuter les lignes un-par-un en cmd car cela a souvent des résultats différents que lorsqu'il est exécuté à partir d'un fichier de lot, une approche naïve échouerait probablement. Bien que je pense avoir une idée que pourrait i> travailler, vous écrivez simplement un autre fichier de commandes, contenant une instruction code> Pause CODE> après chaque ligne ainsi que de rédiger l'environnement complet dans un fichier pour le débogueur à saisir. Pourrait ne pas être trop jolie et garder une trace des fichiers ouverts est un autre problème entièrement. Le moniteur de processus était une belle pointe, bien que
Non, il n'y a aucun moyen de déboguer des fichiers de batch de style ancien. Vous pouvez toutefois simplement vous débarrasser de tous les énoncés code> echo erfo er code>, puis toutes les commandes et la sortie seront écho à la console lorsque vous les exécutez. p>
Toute ligne commençant par @ ne sera pas écho
Si vous êtes prêt à dépenser de l'argent, vous devez jeter un coup d'œil sur le Évaluation des étapes IDE de fichier batch et ses capacités de débogage. P>
Je ne l'ai pas testé, mais cela a des fonctionnalités qui pourraient vous aider dans votre tâche: P>
... p>
- environnement de débogage de studio visuel. Li>
- Ensemble riche de commandes de débogage (entrez-vous, étape, pas, sortez et plus) li>
- Analyseur de projet riche pour trouver vos erreurs et vos avertissements en un rien de temps. Li>
- Prise en charge intégrée pour un environnement élargi retardé variables. li>
- Définitions de points d'arrêt multi-types pour adapter vos multiples besoins de débogage. LI>
- Support complexe de pipeline et de redirection avec la surbrillance multicolore. LI>
- Support de visualisation et de modification de la variable d'environnement. LI>
- Fenêtre d'informations étendue pour une véritable visualisation de définition variable. li>
- Impressionnant «Pour commandement». Caractéristique déroulante. LI>
- Fenêtre de paramètres et paramètres interactifs. LI> ul>
... p> blockQuote>
Ils offrent également une version d'essai. P>
Le lien des étapes en cours d'exécution est maintenant défunt - pointe vers un site portail.
puisque Windows XP / Vista / 7 est sorti de l'ensemble Good'Ore de commandes DOS Batch a été considérablement mis à niveau, bien que cela n'utilise pas beaucoup les utilise ou même la RTFM ( Alors, ici, je vous donne un simple traceur pure-lot qui utilise le commutateur Pour /? Code>?) P>
pour / f code> interrupteur d'analyse de ligne: P>
@ECHO OFF
ECHO Hello World!
SET aaa=1
SET bbb=2
ECHO Doing step 2
SET aaa=
SET ccc=3
ECHO Doing step 3
SET bbb=
SET ccc=
ECHO Finished!
Réécrivez-les dans PowerShell. Il a des capacités de débogage. Vous pouvez également utiliser l'excellent produit «PowerShell Plus» depuis Idera et obtenir une expérience de débogage interactive.
@John: Je pense que le problème de l'OP était plus de comprendre ce que le fichier de commandes DOD doit y réécrire dans une autre langue. Donc, vous faites un peu le même point :)
Vous pouvez obtenir une partie de ces informations à partir du moniteur de processus TechNet.microsoft.com/fr- US / Sysinternals / BB896645.aspx , mais comme pour le reste. J'espère que vous trouverez quelque chose, mais je ne suis pas optimiste.
Je comprends ce que fait le lot, et si je le lisais, je suis capable de le reproduire, mais je pensais à un outil qui rapporte autant de ces choses que possible.