我想通过日期和时间获得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
在这里,我有时间,但没有约会。我怎么能得到这个?
由于
答案 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