Ping出力をテキストファイルに保存する


16

接続状態を確認するためにサーバーにpingを送信することがよくあります。1日のpingの結果をテキストファイルに保存できるように、pingの結果(出力)をテキストファイルに保存する方法はありますか。

Windows XP SP3を使用しています。

pingの例:

ping 192.168.1.1 -t 

(using windows' ping)

または

ping 192.168.1.1

(using cygwin)

回答:


17

たとえば、リダイレクトを使用します。

ping 192.168.1.1 -t > filename.txt

これにより、プログラムからのすべての(標準)出力がにリダイレクトされfilename.txt、存在しない場合は作成され、存在する場合は上書きされます。

>>代わりに>を使用して、出力をファイルにリダイレクトし、上書きする代わりに結果をファイルの末尾に追加できます(リマインダーの@Jane Tに感謝します

これを行うと、通常の画面出力が表示されないことに注意してください。

コメントに応じて更新

pingを遅らせ、それぞれの時間を記録するには、スクリプトを作成します。

これは、私が一緒に投げたWindowsバッチファイルです。時間を出力し、Googleにpingを送信し、3秒待ってから繰り返します。私はバッチファイルの専門家ではありませんので、誰かが問題を見つけたら、それらにフラグを立ててください!そして、これはおそらくあなたが望んでいることを達成するための「最良の」方法ではありません-それは本当に別の質問になります。

@ECHO OFF

:LOOPSTART

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

GOTO LOOPSTART

これを.batどこかのファイルに保存し、必要に応じてpingターゲットと遅延時間を編集してから、.batリダイレクトを使用して実行し、すべての出力をファイルに送ります。

このバッチファイルは終了することはありませんがCtrl+ で終了しC、その後Yから実行することができますcmd。(バッチファイルを停止するかどうかを尋ねるので、Yを押す必要あります-出力をリダイレクトしたために質問が表示されない場合でも!)


ありがとう!、よく働く私はすべてのpingと一緒に現在の時刻を表示することができ、または私は2つのpingの間の時間を変更することができます
アベル

2
このためにスクリプトを作成する必要がありますが、pingでは実行できません。
Azz

Azzは私にそれを打ち負かしました-そのためには、ping何か違うものを出力するように自分自身を変更するか、または、たとえば、タイムスタンプを出力し、pingを実行し、10秒待って、繰り返します。
DMA57361

それができると聞いてうれしいです。もっと待っています。Windowsのスクリプティングがこれで何でもできるようになりました
アベル

2
「1日のpingの結果をテキストファイルに保存できるように」>>を使用して、出力ファイルにデータを追加する必要があります。
ジェーンT


2

コマンドプロンプトを使用している場合は、この形式を使用してテキストプロンプトにリダイレクトするだけです。

ping 192.168.1.1 > ping.txt

それでできます。


1

:: 1秒ごとにISPをPIngし、日付、時刻、結果をテキストファイルに書き込む

@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

1

5秒ごとにgoogle.comにpingを実行し、現在の時刻で結果を記録するスクリプトを作成しました。ここでは、変数「commandLineStr」(インデックス付き)への出力を見つけることができます

@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

0

また、pingの結果を表示したい場合は、このコードを使用できます

@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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.