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)
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.
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! )
Vous pouvez utiliser:
> ping 192.168.1.1 -t > ping-results
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.
:: 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
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
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