首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMD CMD扫描仪的解释?

CMD CMD扫描仪的解释?
EN

Stack Overflow用户
提问于 2015-07-12 09:14:17
回答 1查看 172关注 0票数 0
代码语言:javascript
复制
C:\>FOR /L %x in (1,1,255) do ping -n 1 192.168.1.%x | find /I "reply"

此命令将ping请求发送到192.168.1.%x之间的所有ip地址(0,255)

问:对命令中的每一个字进行解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-12 09:36:42

这个命令什么也不做,但我假设您实际上是指以下内容:

代码语言:javascript
复制
FOR /L %x in (1,1,255) do ping -n 1 192.168.1.%x | find /I "reply"

让我们逐一剖析一下:

  1. for是一个可以以各种方式进行循环的命令。
  2. /L意味着我们对计数循环感兴趣,例如,就像许多编程语言中的for命令一样。
  3. %x是循环变量。批处理文件中的循环变量不同于环境变量,因此具有不同的语法。
  4. in只是一个始终与for一起使用的语法。后面是一个圆括号的表达式,它进一步澄清了什么是循环的。
  5. (1,1,255)是循环边界。从1开始,每次迭代由1递增,然后用255停止。
  6. do只是for循环中始终存在的另一种语法。它后面跟着执行每个迭代的命令。
  7. ping是一个命令,它将ICMP PING数据包发送到其他主机,以查看它们是否响应。
  8. -n 1只用于敲击每个主机一次。
  9. 192.168.1.%x是主机到ping的IP地址。最后一个八进制被循环变量替换,我们记得,循环变量从1255
  10. |是垂直的条形字符,或者,从shell中的管道来看,通常称为“管道”(尽管我会说,J看起来更像管道)。这用于将左边的命令输出作为右侧命令的输入传递。
  11. 在这种情况下,右边的命令是find,它是一个古老的、古老的程序,用于搜索文件和程序输出中的文本并返回这些行。(认真地说:现在使用findstr,除非你在数行。
  12. /I意味着我们不敏感地搜索案件。
  13. "reply"是我们搜索的单词。

综合起来,这是一个行,它将192.168.1.0/24子网中的每个IP地址(甚至广播地址)都按下,并只打印回复。在PowerShell术语中,我们可以通过

代码语言:javascript
复制
Test-Connection (1..255|%{"192.168.1.$_"}) -Count 1 -ErrorAction SilentlyContinue

(这大约是对ping的一个调用,其中有很多地址实际上是并行的)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31366198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档