Speichern Sie die Ping-Ausgabe in einer Textdatei

16

Ich muss oft Server anpingen, um den Konnektivitätsstatus zu ermitteln. Gibt es eine Möglichkeit, die Ping-Ergebnisse (Ausgabe) in einer Textdatei zu speichern, sodass ich die Ping-Ergebnisse des gesamten Tages in einer Textdatei speichern kann?

Ich verwende Windows XP SP3.

Ping-Beispiel:

ping 192.168.1.1 -t 

(using windows' ping)

oder

ping 192.168.1.1

(using cygwin)
abel
quelle

Antworten:

17

Verwenden Sie die Umleitung, zum Beispiel:

ping 192.168.1.1 -t > filename.txt

Dadurch werden alle (Standard-) Ausgaben des Programms in umgeleitet filename.txt, die erstellt werden, wenn sie nicht vorhanden sind, und überschrieben, wenn dies der Fall ist.

Sie können >>stattdessen verwenden >, um die Ausgabe in eine Datei umzuleiten und die Ergebnisse an das Ende der Datei anzuhängen , anstatt sie zu überschreiben (danke an @Jane T für die Erinnerung) .

Beachten Sie, dass Sie in diesem Fall nicht die normale Bildschirmausgabe erhalten.

Als Antwort auf einen Kommentar aktualisieren

Sie können einige Skripte erstellen, um zwischen den einzelnen Pings eine Pause einzulegen und die jeweilige Zeit aufzuzeichnen.

Hier ist eine kurze Windows-Batchdatei, die ich zusammengestellt habe. Es gibt die Zeit aus, pingt Google und wartet dann 3 Sekunden, bevor es sich wiederholt. Ich bin kein Batch-Datei-Experte. Wenn also jemand Probleme entdeckt, melde ihn bitte! Und dies ist wahrscheinlich nicht der "beste" Weg, um das zu erreichen, wonach Sie streben - das könnte wirklich zu einer separaten Frage führen.

@ECHO OFF

:LOOPSTART

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

GOTO LOOPSTART

Speichern Sie dies in einer .batDatei, bearbeiten Sie das Ping-Ziel und die Verzögerungszeit nach Bedarf und führen Sie dann die .batUmleitung aus, um die Ausgabe des gesamten Objekts in eine Datei zu pumpen.

Beachten Sie, dass diese Batchdatei niemals endet , sondern mit Ctrl+ beendet Cund dann Yausgeführt werden kann cmd. (Sie müssen Y drücken, da Sie gefragt werden, ob Sie die Batch-Datei stoppen möchten - obwohl Sie die Frage nicht sehen können, weil Sie die Ausgabe umgeleitet haben!)

DMA57361
quelle
Vielen Dank! Funktioniert gut, kann ich die aktuelle Zeit zusammen mit jedem Ping anzeigen oder die Dauer zwischen zwei Pings ändern
abel
2
Dafür müsstest du ein paar Skripte schreiben, Ping kann das nicht für dich tun.
Azz
Azz hat mich geschlagen - dafür müssten Sie sich pingselbst ändern , um etwas anderes auszugeben, oder Sie müssen einige interessante Skriptbemühungen ausführen, um beispielsweise einen Zeitstempel auszugeben, einen Ping-Befehl auszuführen, 10 Sekunden zu warten und den Vorgang zu wiederholen.
DMA57361
froh zu hören, dass es getan werden kann. Warten auf mehr. Windows Scripting hat damit nichts zu tun
Abel
2
"Damit ich die Ping-Ergebnisse des ganzen Tages in einer Textdatei speichern kann" Sie müssen >> verwenden, um Daten an die Ausgabedatei anzuhängen.
Jane T
3

Sie können verwenden:

> ping 192.168.1.1 -t > ping-results
Pablo Santa Cruz
quelle
2

Wenn Sie die Eingabeaufforderung verwenden, leiten Sie sie einfach in eine Textdatei mit diesem Format um

ping 192.168.1.1 > ping.txt

Das wird es schaffen.

Danbo
quelle
1

:: ISP Alle 1 Sekunden PINGEN und Datum, Uhrzeit und Ergebnis in die Textdatei schreiben

@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
Verzweifelte Dan
quelle
1

Ich habe das Skript geschrieben, das alle 5 Sekunden einen Ping an google.com sendet und die Ergebnisse mit der aktuellen Uhrzeit protokolliert. Hier finden Sie die Ausgabe in die Variablen "commandLineStr" (mit Indizes)

@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
quelle
0

Auch wenn Sie die Ping-Ergebnisse in der Anzeige sehen möchten, können Sie diesen Code verwenden

@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
quelle