Ping Çıktısını bir metin dosyasına kaydetme


16

Bağlantı durumu için sunuculara ping atmak zorunda kalıyorum. Tüm gün ping sonuçlarını bir metin dosyasına kaydedebilmem için ping sonuçlarını (çıktı) bir metin dosyasına kaydetmenin bir yolu var mı ?

Windows XP SP3 kullanıyorum.

Ping örneği:

ping 192.168.1.1 -t 

(using windows' ping)

veya

ping 192.168.1.1

(using cygwin)

Yanıtlar:


17

Yeniden yönlendirme kullanın, örneğin:

ping 192.168.1.1 -t > filename.txt

Bu, programdan tüm (standart) çıktıları içine yönlendirir filename.txt; bu mevcut değilse oluşturulacak ve eğer üzerine yazılır.

Sen kullanabilirsiniz >>yerine >bir dosyaya çıktı yönlendirmek ve ekleme Üzerine yazmak yerine, dosyanın sonuna sonuçları (sayesinde ile @Jane T hatırlatıcı için) .

Eğer olacağını Not değil bunu yaparsanız, normal ekrandaki çıkışını alırlar.

Yoruma yanıt olarak güncelleme

Pingler arasında gecikme yapmak ve her birinin zamanını kaydetmek için biraz komut dosyası yapabilirsiniz.

İşte birlikte attığım hızlı bir Windows toplu iş dosyası. Zamanı yazdırır, Google'a ping gönderir, ardından tekrar etmeden önce 3 saniye bekler. Ben değil herhangi bir sorun flag onları memnun kimse noktalar eğer öyleyse bir toplu iş dosyası uzmanı! Ve bu muhtemelen peşinde olduğunuz şeyi elde etmenin "en iyi" yolu değildir - bu gerçekten ayrı bir soru sorabilir.

@ECHO OFF

:LOOPSTART

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

GOTO LOOPSTART

Bunu bir .batyerde bir dosyaya kaydedin , ping hedefini düzenleyin ve zamanı istediğiniz gibi geciktirin, ardından .bather şeyin çıktısını bir dosyaya pompalamak için yeniden yönlendirmeyi kullanın.

Bu toplu iş dosyasının hiçbir zaman sona ermediğini , ancak Ctrl+ Cve sonra Yçalıştırıldığında sonlandırılabileceğini unutmayın cmd. (Sen gerekir - Eğer çıktıyı yönlendirdim çünkü soru göremiyorum rağmen toplu dosyasını durdurmak istiyorsanız sorar çünkü Y basın!)


Teşekkürler! iyi çalışıyor, her ping ile birlikte geçerli saati gösterebilir miyim, yoksa iki ping arasındaki süreyi değiştirebilir miyim
abel

2
Bunun için biraz komut dosyası yapmanız gerekir, ping bunu sizin için yapamaz.
Azz

Azz beni bunun üzerine dövdü - bunun için pingfarklı bir şey çıkarmak için kendini değiştirmeniz ya da örneğin bir zaman damgası, ping, 10 saniye beklemek, tekrarlamak için ilginç bir komut dosyası çalışması yapmanız gerekir.
DMA57361

yapılabilir duymaktan memnun. daha fazlasını bekliyorum. windows komut dosyası ile bu bir şey yapmak zorunda
abel

2
"bütün gün ping sonuçlarını bir metin dosyasına kaydedebilmem için" Çıktı dosyasına veri eklemek için >> kullanmanız gerekecek.
Jane T


2

Komut istemini kullanıyorsanız, yalnızca bu biçimi kullanarak bir metin dosyasına yönlendirin

ping 192.168.1.1 > ping.txt

Bunu yapacak.


2

Her 5 saniyede bir google.com'a ping yapan ve sonuçları şimdiki zamanda kaydeden bir senaryo yazdım. Burada "commandLineStr" değişkenlerine çıktı bulabilirsiniz (indekslerle birlikte)

@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

Ayrıca ping sonuçlarını ekranda görmek istiyorsanız bu kodu kullanabilirsiniz

@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

:: Her 1 saniyede bir İSS PIng ve Metin Dosyası'na tarih, saat ve sonuç yazma

@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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.