Lot de ping une liste de noms d'ordinateur et d'écrire les résultats dans un fichier
Le code ci-dessous va écrire le nom de l'ordinateur et l'adresse ip de fichier, mais je l'aime aussi écrire le nom des ordinateurs, il est impossible de ping avec un échec à côté d'elle. Je n'ai aucune idée de comment je pourrais modifier le fichier de commandes pour ce faire.
@echo off
Echo Pinging list...
set ComputerList=list.txt
Echo Computername,IP Address>Final.csv
setlocal enabledelayedexpansion
for /f "usebackq tokens=*" %%A in ("%ComputerList%") do (
for /f "tokens=3" %%B in ('ping -n 1 -l 1 %%A ^|findstr Reply') do (
set IPadd=%%B
echo %%A,!IPadd:~0, -1!>>Results.csv
))
pause
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser errorlevel fixé par
findstr
de remplacer chaîne de retour(s) si "Répondre" n'est pas trouvé:où
||
(échappé ici à cause defor
contexte avec^
) signifie exécuter uniquement si la commande précédente a échoué.Comme une note de côté, vous devez être conscient que
ping
messages système dépendant d'une langue (ils sont traduits dans la langue de l'OS) afin de "Répondre" comme indicateur de réussite ne fonctionne que pour les versions anglaises.Cela peut ne pas être directement ce que vous cherchez, mais j'ai eu une tâche similaire: exécuter la commande ping et fait état de la réussite ou de l'échec. Je vais laisser l'extraction de l'adresse IP à vous voir comme vous l'avez déjà fait.
Le problème avec le ping, c'est qu'il renvoie succès lors de la résolution de nom, si les paquets perdus ou hôte est inaccessible (fera rapport de Perte 0%) n'est pas pertinente.
Logique: Ping une fois, de filtrer seulement les lignes contenant l'un des mots ci. Si TTL existe en ligne (sortie STDERR ou NUL pour éviter la sortie de la pollution) echo succès, else echo a échoué.
Je suis sur Windows en anglais, les mots qui devront être adaptées pour d'autres langues.
EDIT:
Moins dépendantes de la langue, ne fonctionne que pour IPv4, a ajouté l'IP de l'extraction.
Filtre résultat de la commande ping pour TTL, définissez la sortie de "a Échoué" si le TTL ne trouve pas.
Si la chaîne de sortie contient TTL, extrait de propriété intellectuelle et de l'écho de l'hôte et la propriété intellectuelle, d'autre echo le nom de l'hôte et de la chaîne de sortie.