微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获得只有在Windows上的pingtesting的答复线

通常,当ping一个服务器IP地址时,我们有这个回报:

Pinging <IP address> with 32 bytes of data: Reply from <ip> : bytes=32 time=151 TTL=121 Reply from <ip> : bytes=32 time=151 TTL=121 Reply from <ip> : bytes=32 time=151 TTL=121 Reply from <ip> : bytes=32 time=151 TTL=121 Ping statistics for <IP address>: packets: sent = 4,Received = 4,lost = 0 (0% loss),Approximate round trip times in milli-secounds: Minimum = 151ms,Maximum = 151 ms,Average = 151 ms

在Windows上的cmd.exe(无论使用Windows语言)中,如何获得只有下面的行(只有一个pingtesting的回复行)作为回报?

Reply from <IP address> : bytes=32 time=151 TTL=121

也许最简单的方法是只显示第二行? 这应该怎么做? 因为我不知道如何在Windows上做到这一点。

将文本文件内容读入环境variables

什么等同于Linux中的mkdir -p?

win cmd在Excel中打开一个特定的电子表格是什么?

无法正确设置在Windows 7,64位Java的path

为什么是CMD批IF与延迟扩展给我错误的结果在For循环?

如何使用Python扼杀电脑

如何从Windows7的Sublime打开命令行提示

有没有更好的Windows命令提示符?

从Windowsbatch file读取环境variables(cmd.exe)

Windows cmd将子命令输出redirect到文件

这可能更普遍。

ping -n 1 <hostname/IP> | FIND "TTL="

您可以将findstr命令与跳过行选项结合使用:

C:>ping 127.0.0.1 | for /f "skip=3 tokens=*" %a in ('findstr Reply') do @echo %a

输出是:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

如果写入批处理文件,请将%a更改为%%a 。

好,

ping -n 1 <hostname/IP>

只会发送1个ping请求。 而且您应该能够使用FIND命令找到答复行。

所以,这样的事情:

ping -n 1 <hostname/IP> | FIND "Reply"

UPDATE

我知道上面的作品在英语,Windows 7的机器上。 我会假设它会为其他本地化工作,但这可能是一个不正确的假设。

更新2

这个问题似乎提供了一些见解。 您可能必须将ping的输出写入文件(使用输出重定向管道),然后使用答案中的命令来获取第二行。

从批处理内容看起来非常简单,但是从命令行来说……丑陋是主要的轻描淡写:

(for /f "skip=1 delims=" %F in ('ping -n 1 localhost') do @if not defined _A @echo %F&set _A=0) &set "_A="

但是,它的确有诀窍,打印第二行(不管它会发生什么),并跳过其余的部分。 你可以改变它打印的行改变skip= 。

如果你有PowerShell可用,你可以简单地做:( 是的,我知道这不是如何ping应该在PS中完成 ): powershell "ping -n 1 localhost | select -index 2" 。 您可能需要玩索引,因为在我的(XP)笔记本电脑平插入每行附加CR,这是从PS的双倍间距输出效果

基于@wmz的答案,

(for /f "skip=3 tokens=*" %F in ('ping -n 1 <hostname/IP>') do @if not defined _A @echo %F&set _A=0) &set "_A="

可以作为一个单线而不是语言依赖。

当没有给出响应(Timeout)时,它也会给出结果,其中find和findstr不会。

你可以用PowerShell来实现这个…这里是你可以添加到脚本的代码

$ping = new-object System.Net.networkinformation.Ping $reply = $ping.send('127.0.0.1') if ($reply.status -eq "Success"){ [string]::Format("Reply from {0},time={1}",$reply.Address.ToString(),$reply.roundtripTime) }else{ $z = [system.net.dns]::gethostaddresses($hostname)[0].ipaddresstostring [string]::Format("FAIL,{0},{1}",$z,"***") }

您可以以任何您想要的格式格式化字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐