Fichier de commandes en boucle ping - sortie dans le fichier hosts qui sont
Je voudrais faire un .fichier bat qui va faire une boucle comme ci-dessous:
@echo off
FOR /L %%G IN (1, 1, 69) DO (
ping -n 1 192.168.%%G.3
ping -n 1 192.168.%%G.4
)
Puis regarder à travers la sortie et envoyer uniquement les adresses ip qui ont répondu correctement à la commande ping sur un fichier txt. Est-ce possible avec un CMD fichier batch?
OriginalL'auteur UncleKevo | 2011-02-18
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, vous utilisez
&&
pour ajouter la commande qui est exécutée seulement si la commande précédente (celle d'avant la&&
) a terminé avec succès (techniquement parlant, a renvoyé le code de sortie de0
).Il y a une approche similaire pour le cas contraire. Si vous souhaitez effectuer certaines actions sur l'échec d'une commande, vous mettez
||
après, puis la commande de la mise en œuvre de votre action.MODIFIER
Une remarque à propos de
ping
. Parfois, vous recevez une notification à partir du routeur que l'hôte n'est pas accessible. Dans ce casping
encore des sorties avec0
code ("réussi"), car il ne d'obtenir une réponse, même si c'est à partir du routeur et non pas à partir de l'hôte réel.Si cela peut être le cas avec vos hôtes et vous ne voulez pas avoir de faux positifs dans le fichier de sortie, vous aurez à analyser les données en sortie de
ping
pour certains mots-clés indiquant si la requête ping a réussi en effet. Jusqu'à présent, vous pouvez compter sur les lignes indiquant le montant global stats: ils n'apparaissent que si la réponse a été la destination d'accueil.Donc, voici l'approche alternative:
EDIT 2
Changé à la fois des solutions pour l'utilisation de la sous-routine d'appel, afin d'éviter l'expansion de
%ip%
à l'intérieur de lafor
boucle. (Peut également être fixé par l'activation d'une expansion retardée à la place.)Également cité
%output%
partout.OriginalL'auteur Andriy M
OriginalL'auteur Mr. Derp