J'écris un programme qui utilise la commande "tracert" pour trouver les traceroutes pour les adresses IP, que je vais ensuite utiliser pour faire certaines choses. Comment j'ai prévu de faire ceci est, en rejetant la sortie pour toutes les adresses IP dans un fichier texte en ajoutant >>output.txt
puis en le lisant avec Python ou quelque chose et le transformer en quelque chose d'utilisable. Mon problème avec ceci est que tracert montre aussi dans sa sortie certaines choses qui ne me servent à rien, comme la première ligne qui indique où il trace et quel est le nombre maximum de sauts, ou la dernière ligne cela dit seulement: "Trace complete". Le fait est que je vais traquer plus de 3500 adresses IP, et que ce nombre ne fera qu'augmenter, donc c'est beaucoup de texte que j'imprime dans un fichier qui est absolument inutile.Existe-t-il un moyen de modifier la sortie de la ligne de commande avant de l'enregistrer dans un fichier?
Voilà pourquoi ma question est la suivante: est-il possible de modifier la sortie de la commande avant de l'enregistrer, dans un fichier batch?
La commande Je cours:
tracert -h 30 -w 500 XX.XXX.XXX.XX >>cmd_output.txt
La sortie donne:
Tracing route to XYZ.net
[XX.XXX.XXX.XX]
over a maximum of 30 hops:
1 41 ms 18 ms 2 ms text.net [XXX.XXX.XXX.X]
2 2 ms 1 ms 1 ms text.net [XX.XXX.XXX.XXX]
3 1 ms 1 ms 1 ms text.net [XX.XXX.XXX.XXX]
4 5 ms 5 ms 5 ms text.net [XXX.XX.XX.XXX]
5 5 ms 5 ms 5 ms text.net [XXX.XX.XX.X]
6 25 ms 25 ms 25 ms XYZ.net [XX.XXX.XXX.XX]
Trace complete.
façon la plus simple: 'tracert www.google.com | trouver "ms" >> file.txt' ou' tracert www.google.com || findstr/bc: "" '(n'imprime que les lignes qui commencent par un espace) – Stephan
Vous nous avez dit ce que vous considérez comme inutile, mais pas ce que vous voulez réellement dans votre sortie. Pour moi, je ne vois aucun but dans toutes les colonnes non plus. S'il vous plaît laissez-nous savoir ce que vous voulez tout en recherchant comment le faire vous-même parce que ce n'est pas un site de demande de codage. – Compo
La question est: __Est-ce que je peux modifier la sortie du CMD avant de l'enregistrer dans un fichier batch? __ Et la réponse est: __Oui, il y a plusieurs façons de filtrer ou reformater une sortie d'application avant d'écrire dans un fichier .__ Nous n'aurions pas besoin d'écrire plus, mais [Stephan] (https://stackoverflow.com/users/2152082/stephan) suggérait déjà l'utilisation de __FINDSTR__. __FIND__ pourrait être aussi utilisé comme application de filtre. Il est également possible d'utiliser __FOR__, __SET__ et __IF__ pour reformater la sortie avant d'écrire dans un fichier. Et il y a beaucoup plus de méthodes. Exécutez-les avec '/?' Pour obtenir de l'aide. – Mofi