2011-10-11 07:02:21 +0000 2011-10-11 07:02:21 +0000
26
26

X分ごとにpingを実行して、応答時間を確認するにはどうすればいいですか?

私は現在大きな会社で働いていますが、深刻なレイテンシーの問題があります。これはプロセス制御システムで起こっており、受け入れられません(バルブを開くとコマンド開始前に2分かかることがあります)

私は、ネットワークチームが「ネットワーク上ではすべてが大丈夫です」と言ったときにダブルチェックしたいと思います。

ネットワークチームが「ネットワーク上では問題ありません」と言った時に、ネットワークチームが「ネットワーク上では問題ありません」と言った時の再確認をしたい。

私はバッチの専門家ではありませんが、このコードを使うのが正しいと思いますか?

@ECHO OFF

:LOOPSTART

time /T
ping xxx.xx.x.x -t >> filename.txt
sleep -m 3000

GOTO LOOPSTART

回答 (10)

32
32
32
2011-10-11 07:14:25 +0000

私には問題なさそうに見えますが、IPに連続してPingしたい場合はループさせる必要はありません。それなら、単純に次のようにすればいいのです。

@ECHO OFF
set IPADDRESS=x.x.x.x
ping %IPADDRESS% -t >> filename.txt

X分ごとにPingしたい場合は、ループを使ってください。

@ECHO OFF
set IPADDRESS=x.x.x.x
set INTERVAL=60
:PINGINTERVAL
ping %IPADDRESS% -n 1 >> filename.txt
timeout %INTERVAL%
GOTO PINGINTERVAL

ご覧のように、私は sleep コマンドを timeout に置き換えました。これは、sleep が通常使用可能なのに対し、一部のシステムでは timeout が常に使用可能とは限らないからです。

お使いのシステムにsleeptimeoutコマンドがない?心配しないでください。timeoutを以下のハックに置き換えるだけです。

@ping 127.0.0.1 -n %INTERVAL% > nul

このハックは単にローカルアドレスにpingを打つだけです。

3
3
3
2017-11-08 06:35:32 +0000

一行だけの場合は、以下のようにしてください。

cmd /v /c "(for /l %a in () do @for /f "tokens=*" %b in ('ping -w 1000 -n 1 xxx.xxx.xxx.xxx ^| findstr "Reply Request Unknown Destination"') do @echo !DATE! !TIME! %b & timeout 3000 >NUL) > pingtestresults.txt"

注意:

  1. xxx.xxx.xxx.xxxgoogle.com に置き換えることができます 2. 間隔を編集するには、300060(1分)または10(10秒) に変更してください 3. このコマンドをバッチファイル(.batまたは.cmd)に入れる必要がある場合は、%%%に置き換えてください
1
1
1
2018-10-11 20:56:56 +0000

Windowsの場合は、 wtee.exe をインストールしていただければ、以下のように pingloop.bat )で動作します。

@echo off
SETLOCAL

set pingTarget=yahoo.com
set fileName=pinglog.txt
set waitSeconds=420

echo. | wtee -a %fileName%
echo ====================================================== | wtee -a %fileName%
echo Starting Ping Loop; Logging to %fileName% | wtee -a %fileName%

:timestamp
set day=%date:~7,2%
set month=%date:~4,2%
set year=%date:~10,4%

set timestamp=%year%-%month%-%day%_%time%
echo. | wtee -a %fileName%
echo ------------------------------------------------------ | wtee -a %fileName%
echo Ping Timestamp: %timestamp% | wtee -a %fileName%

:ping
ping %pingTarget% -n 1 | wtee -a %fileName%

:wait
ping 127.0.0.1 -n %waitSeconds% > nul

goto timestamp

ENDLOCAL

乾杯!

0
0
0
2016-06-24 16:08:41 +0000

のタイムアウトスイッチは、あなたが探している「待ち」スイッチとは違います。Windows の ping コマンドのタイムアウトスイッチは、コマンドウィンドウに応答を受信するまでの待ち時間を伝えるだけで、次の応答を送信するまでの待ち時間を伝えるものではありません。

0
0
0
2019-03-08 10:08:28 +0000

上のSparksの回答を拡張して、彼の一行コードをバッチファイルに入れて、いくつかの修正を加えてみました。

cmd /v /c "(for /l %%a in () do @for /f "tokens=*" %%b in ('ping -w 1000 -n 1 %1 ^| 
findstr "Reply Request Unknown Destination"') do @echo !DATE! !TIME! %%b & timeout %2 
>NUL) > pingtestresults.txt"

PingD.batとして保存されていますが、PingD [マシン名/IP] [ping間の遅延時間(秒)]

例:PingD MyDC01 10は10秒ごとにMyDC01にpingを送信します。

0
0
0
2019-10-30 02:52:47 +0000

windows上のコマンドウィンドウに貼り付けるだけなら

(for /l %a in () do @for /f “tokens=*” %b in (‘ping -w 1000 -n 1 8.8.8.8 ^| findstr “Reply Request Unknown Destination”’) do @echo %b & timeout 3 >NUL)

3秒ごとにpingします…。

これはログファイルに書き込む必要がないので良いです。

何らかの理由で、以下のようにしてログファイルにパイプアウトすることもできます: (for /l %a in () do @for /f “tokens=*” %b in (‘ping -w 1000 -n 1 8.8.8.8.8. 8 ^| findstr “Reply Request Unknown Destination”’) do @echo %b & timeout 3 >NUL)>file.txt

また、今回は3秒なので、「timeout」の後の値を変更することで、タイムアウトを調整することができます…。

そして、バッチファイルに保存する必要はありません。保存したクラウドの場所に保存されているこのテキストの文字列をコピー&ペーストするだけ…もしくは、好きなコマンドのフォルダ…などなど。

0
0
0
2014-07-18 07:35:10 +0000

私はそれがWindowsの質問であることを知っている(そしてそれはそれで古いもの)、しかし、多分それはLinuxやOSXに似ています。これは、私のラップトップ上のネットワークトラフィックを維持するための簡単なコマンドを探していたときに最初に出てきたものです。似たようなものを探している人には役に立つかもしれません。

を bash スクリプトで。

WAITSECONDS=30 #or whatever your needs are
IPTOPING=8.8.8.8 #or whatever your needs are
ping -i ${WAITSECONDS} ${IPTOPING} > logfile

30秒ごとにgoogle dnsをpingするシングルラインex:

ping -i 30 8.8.8.8 > logfile

OSXとLinuxで動作します。

0
0
0
2017-01-13 17:25:07 +0000

疑問点がよくわかりません。どうやら、バッチファイルをファイルに追加する際の連続ループには何の意味もないようです。特に、このバッチファイルが繰り返される外部イベントによって起動された場合…ディスク容量をいっぱいにしたい場合や、大量のコマンドプロンプトを起動してシステムを窒息させたい場合は別ですが…。

私の想定では、テストのための期間があり、その後バッチは終了するはずです。また、今日のMS WindowsのほとんどはPowershellを搭載しており、このような場合に役立つかもしれないと仮定しています。

powershell "get-date | out-file <log filename>"
powershell "test-connection <IP> -delay <interval> -count <how many pings> | out-file -append <log filename>"

これはバッチファイルに入れることもできますし、powershellスクリプトとして実行することもできますが、この場合は'powershell'と二重引用符を削除してください。

-1
-1
-1
2015-04-27 17:57:18 +0000
-1
-1
-1
2016-03-23 13:29:44 +0000

これは指定した間隔(この例では10秒)で特定のIPにpingするために使用しているwindowsコマンドです:

ping -t <ip.address> -w 10000

-tは継続的にpingします。

ping -t <ip.address> -w 60000

-t は継続的に ping を行います。以下は 1 分間の待ち時間の例です:

0x1&

お楽しみください。