Enregistrer la sortie Ping dans un fichier texte

16

Je dois souvent cingler les serveurs pour l'état de connectivité. Existe-t-il un moyen d'enregistrer les résultats de ping (sortie) dans un fichier texte afin que je puisse enregistrer les résultats de 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)
Abel
la source

Réponses:

17

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 seront créées si elles n'existent pas et écrasées dans le cas contraire.

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

Notez que vous ne recevrez pas la sortie normale à l'écran si vous procédez ainsi.

Mise à jour en réponse au commentaire

Pour retarder entre les pings et enregistrer l'heure de chacun, vous pouvez faire un script.

Voici un fichier batch Windows rapide que j'ai jeté ensemble. Il imprime l'heure, cingle Google, puis attend 3 secondes avant de se répéter. Je ne suis pas un expert des fichiers batch, donc si quelqu'un détecte des problèmes, signalez-les! Et ce n'est probablement pas la "meilleure" façon de réaliser ce que vous recherchez - cela pourrait vraiment poser une question distincte.

@ECHO OFF

:LOOPSTART

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

GOTO LOOPSTART

Enregistrez-le dans un .batfichier quelque part, modifiez la cible ping et retardez le temps selon vos besoins, puis exécutez la .batredirection en utilisant pour pomper la sortie du tout dans un fichier.

Notez que ce fichier batch ne se termine jamais , mais peut être terminé par Ctrl+ Cpuis Ys'il est exécuté à partir de cmd. (Vous devez appuyer sur Y car il vous demande si vous souhaitez arrêter le fichier de commandes - même si vous ne pouvez pas voir la question car vous avez redirigé la sortie!)

DMA57361
la source
Merci! fonctionne bien, puis-je afficher l'heure actuelle avec chaque ping, ou puis-je changer la durée entre deux pings
abel
2
Vous devrez faire un script pour cela, ping ne pourra pas le faire pour vous.
Azz
Azz m'a battu - pour cela, vous devez vous changer pingpour produire quelque chose de différent, ou faire des efforts de script intéressants pour - par exemple - produire un horodatage, un ping, attendre 10 secondes, répéter.
DMA57361
heureux d'entendre que cela peut être fait. en attendant plus. le script Windows doit-il faire quoi que ce soit avec cela
abel
2
"afin que je puisse enregistrer les résultats de ping d'une journée entière dans un fichier texte" Vous devrez utiliser >> pour ajouter des données au fichier de sortie.
Jane T
3

Vous pouvez utiliser:

> ping 192.168.1.1 -t > ping-results
Pablo Santa Cruz
la source
2

Si vous utilisez l'invite de commande, redirigez-la simplement vers un fichier texte en utilisant ce format

ping 192.168.1.1 > ping.txt

Cela suffira.

danbo
la source
1

:: Enregistrer le FAI 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
Desperate Dan
la source
1

J'ai écrit le script qui interroge google.com toutes les 5 secondes et enregistre les résultats avec l'heure actuelle. Ici vous pouvez trouver 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
Ja Vy
la source
0

Aussi, si vous voulez voir les résultats du ping dans l'affichage, 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
JorgeM
la source