回答:
たとえば、リダイレクトを使用します。
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
何か違うものを出力するように自分自身を変更するか、または、たとえば、タイムスタンプを出力し、pingを実行し、10秒待って、繰り返します。
次を使用できます。
> ping 192.168.1.1 -t > ping-results
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