web-dev-qa-db-fra.com

Enregistrer la sortie Ping dans un fichier texte

Je dois souvent envoyer une requête ping aux serveurs pour connaître l'état de la connectivité. Existe-t-il un moyen de sauvegarder les résultats du ping (sortie) dans un fichier texte afin de pouvoir sauvegarder les résultats du ping d'une journée entière dans un fichier texte.

J'utilise Windows XP SP3.

Exemple de ping:

ping 192.168.1.1 -t 

(using windows' ping)

ou

ping 192.168.1.1

(using cygwin)
15
abel

Utilisez la redirection, par exemple:

ping 192.168.1.1 -t > filename.txt

Cela redirigera toutes les sorties (standard) du programme vers filename.txt, qui sera créé s'il n'existe pas et remplacé si c'est le cas.

Vous pouvez utiliser >> au lieu de > pour rediriger la sortie vers un fichier et ajouter les résultats à la fin du fichier, au lieu de remplacer (avec grâce à @ Jane T pour le rappel).

Notez que vous recevrez pas la sortie normale à l'écran si vous le faites.

Mise à jour en réponse au commentaire

Pour retarder les pings et enregistrer l'heure de chacun, vous pouvez effectuer des scripts.

Voici un fichier batch Windows rapide que j'ai jeté ensemble. Il imprime l'heure, pings Google, puis attend 3 secondes avant de se répéter. Je suis pas un expert en traitement de fichiers par lots, donc si vous remarquez un problème, signalez-le! Et ce n’est probablement pas le "meilleur" moyen de réaliser ce que vous voulez, c’est une question distincte.

@ECHO OFF

:LOOPSTART

time /T
ping www.google.com -n 4
sleep -m 3000

GOTO LOOPSTART

Enregistrez-le dans un fichier .bat quelque part, modifiez la cible du ping et le temps de retard selon vos besoins, puis exécutez le .bat en utilisant la redirection pour transférer la sortie de la chose entière dans un fichier.

Notez que ce fichier de commandes ne se termine jamais , mais peut être terminé par Ctrl + C et alors Y si exécuté depuis cmd. (Vous devez appuyer sur Y car il vous est demandé si vous souhaitez arrêter le fichier de traitement par lots, même si vous ne pouvez pas voir la question car vous avez redirigé la sortie! )

17
DMA57361

Vous pouvez utiliser:

> ping 192.168.1.1 -t > ping-results
3
Pablo Santa Cruz

Si vous utilisez la commande Invite, il vous suffit de le rediriger vers un fichier texte utilisant ce format.

ping 192.168.1.1 > ping.txt

Ça va le faire.

2
danbo

:: PIng ISP Toutes les 1 secondes et écrire la date, l'heure et le résultat dans un fichier texte

@ECHO OFF
:LOOPSTART
date /T >>Pingtest.log
time /T >>Pingtest.log
ping 8.8.8.8 -n 1 >>PingTest.log
sleep -m 1000
GOTO LOOPSTART
1
Desperate Dan

J'ai écrit le script qui pings google.com toutes les 5 secondes et en enregistrant les résultats avec l'heure actuelle. Vous pouvez trouver ici la sortie des variables "commandLineStr" (avec index)

@echo off

:LOOPSTART

echo %DATE:~0% %TIME:~0,8% >> Pingtest.log

SETLOCAL ENABLEDELAYEDEXPANSION
SET scriptCount=1
FOR /F "tokens=* USEBACKQ" %%F IN (`ping google.com -n 1`) DO (
  SET commandLineStr!scriptCount!=%%F
  SET /a scriptCount=!scriptCount!+1
)
@ECHO %commandLineStr1% >> PingTest.log
@ECHO %commandLineStr2% >> PingTest.log
ENDLOCAL

timeout 5 > nul

GOTO LOOPSTART
1
Ja Vy

Aussi, si vous voulez voir les résultats du ping à l'écran, vous pouvez utiliser ce code

@ECHO OFF
:LOOPSTART
date /T >>Pingtest.log
time /T >>Pingtest.log
REM this line show you the ping results in display
ping 8.8.8.8 -n 1 

REM this line print the ping results in the log file
ping 8.8.8.8 -n 10 >>PingTest.log
sleep -m 1000
GOTO LOOPSTART
0
JorgeM