Zapisz wynik Ping w pliku tekstowym


16

Często muszę pingować serwery w celu uzyskania statusu łączności. Czy istnieje sposób zapisania wyników ping (wyników) w pliku tekstowym, dzięki czemu mogę zapisać wyniki ping z całego dnia w pliku tekstowym.

Korzystam z systemu Windows XP SP3.

Przykład pingowania:

ping 192.168.1.1 -t 

(using windows' ping)

lub

ping 192.168.1.1

(using cygwin)

Odpowiedzi:


17

Użyj przekierowania, na przykład:

ping 192.168.1.1 -t > filename.txt

Spowoduje to przekierowanie wszystkich (standardowych) danych wyjściowych z programu do filename.txt, który zostanie utworzony, jeśli nie istnieje i nadpisany, jeśli tak jest.

Możesz użyć >>zamiast >przekierować wyjście do pliku i dołączyć wyniki na końcu pliku, zamiast nadpisywania (dzięki dzięki @Jane T za przypomnienie) .

Pamiętaj, że jeśli to zrobisz, nie otrzymasz normalnego obrazu na ekranie.

Zaktualizuj w odpowiedzi na komentarz

Aby opóźnić między pingami i zapisać czas każdego z nich, możesz wykonać skrypty.

Oto szybki plik wsadowy systemu Windows, który rzuciłem razem. Drukuje czas, pinguje Google, a następnie czeka 3 sekundy, zanim się powtórzy. Jestem nie ekspert plik wsadowy, więc jeśli ktoś plamy jakieś problemy zgłoś je! I prawdopodobnie nie jest to „najlepszy” sposób na osiągnięcie tego, czego szukasz - może to naprawdę stanowić osobne pytanie.

@ECHO OFF

:LOOPSTART

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

GOTO LOOPSTART

Zapisz to .batgdzieś w pliku, edytuj docelowy ping i opóźnij czas, jak potrzebujesz, a następnie uruchom .batprzekierowanie przy użyciu, aby wypompować dane wyjściowe całej rzeczy do pliku.

Zauważ, że ten plik wsadowy nigdy się nie kończy , ale można go zakończyć za pomocą Ctrl+, Ca następnie Yuruchomić z cmd. (Ty musi naciśnij Y, ponieważ zapyta, czy chcesz, aby zatrzymać plik wsadowy - nawet jeśli nie widać pytanie dlatego, że przekierowanie wyjścia!)


dzięki! działa dobrze, czy mogę wyświetlać aktualny czas wraz z każdym pingiem, czy mogę zmienić czas trwania między dwoma pingami
abel

2
Będziesz musiał wykonać kilka skryptów, ping nie będzie w stanie zrobić tego za ciebie.
Azz

Azz mnie do tego pobił - w tym celu musiałbyś się zmienić ping, aby wypisać coś innego, lub wykonać interesujący skrypt, aby - na przykład - wypisać znacznik czasu, ping, poczekaj 10 sekund, powtórz.
DMA57361,

miło to słyszeć. czekam na więcej. skrypty systemu Windows mają z tym coś wspólnego
abel

2
„żebym mógł zapisać wyniki ping z całego dnia w pliku tekstowym” Musisz użyć >>, aby dołączyć dane do pliku wyjściowego.
Jane T


2

Jeśli używasz wiersza polecenia, po prostu przekieruj go do pliku tekstowego w tym formacie

ping 192.168.1.1 > ping.txt

To wystarczy.


2

Napisałem skrypt, który pinguje google.com co 5 sekund i rejestruje wyniki na bieżąco. Tutaj możesz znaleźć dane wyjściowe do zmiennych „commandLineStr” (z indeksami)

@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

Również jeśli chcesz zobaczyć wyniki pingowania na ekranie, możesz użyć tego kodu

@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

1

:: PIng ISP Co 1 sekundę i wpisz datę, godzinę i wynik do pliku tekstowego

@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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.