获得日期和时间的ping回复时间

时间:2015-02-10 05:46:27

标签: ping

我想通过日期和时间获得ping回复时间。我有这样的批处理脚本。

@echo off
ping -t 127.0.0.1|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 127.0.0.1>nul" >> pingTime.txt

在这里,我有时间,但没有约会。我怎么能得到这个?

由于

2 个答案:

答案 0 :(得分:1)

你不是在问一个编程问题,但是我在需要的时候写了一段时间。

using System;
using System.IO;
using System.Net.NetworkInformation;
using System.Threading;

class Program
{
  static void Main(string[] args)
  {
    Console.WriteLine("Pinging {0} every 1 second", args[0]);

    string output = args.Length == 2 ? args[1] : null;

    if (output != null)
    {
      File.AppendAllText(output, 
        string.Format("Pinging {0} every 1 second{1}", 
          args[0], Environment.NewLine));
    }

    var p = new Ping();

    while (true)
    {
      var n = DateTime.Now;
      var r = p.Send(args[0], 1000);
      var e = DateTime.Now;

      string result = null;

      if (r.Status == IPStatus.TimedOut)
      {
        result = string.Format("{0:s} => timeout", n);
      }
      else
      {
        result = string.Format("{0:s} => {1}ms", n, r.RoundtripTime);
      }

      Console.WriteLine(result);

      if (output != null)
      {
        File.AppendAllText(output, result + Environment.NewLine);
      }

      Thread.Sleep((int) Math.Max(0, 1000 - (e - n).TotalMilliseconds));
    }
  }
}

将上方另存为tping.cs。使用csc tping.cs进行编译。

答案 1 :(得分:0)

这将有效

@echo off
ping -t 127.0.0.1|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!date! !time! !data!)&ping -n 2 127.0.0.1>nul" >> pingTime.txt