0
C:\>FOR /L %x in (1,1,255) do ping -n 1 192.168.1.%x | find /I "reply"
該命令從192.168.1 ping請求發送到所有IP地址%×(0,255)CMD ipscanner的解釋?
Q之間的範圍:在該命令的每一個字的解釋。
C:\>FOR /L %x in (1,1,255) do ping -n 1 192.168.1.%x | find /I "reply"
該命令從192.168.1 ping請求發送到所有IP地址%×(0,255)CMD ipscanner的解釋?
Q之間的範圍:在該命令的每一個字的解釋。
該命令不做任何事,但我會假設你實際上意味着以下幾點:
FOR /L %x in (1,1,255) do ping -n 1 192.168.1.%x | find /I "reply"
讓我們來剖析一個一個:
for
是一個命令可以做循環在各種方式/L
意味着我們有興趣在計數循環,例如如許多編程語言中的for
命令。%x
是循環變量。批處理文件中的循環變量與環境變量不同,因此語法也不同。in
只是總是與for
一起使用的一種語法。接下來是一個加括號的表達式,進一步闡明瞭什麼是循環的。(1,1,255)
是循環邊界。從1
開始,每次迭代增加1
,並以255
停止。do
只是在for
循環中總是存在的另一種語法。緊隨其後的是執行每次迭代的命令。ping
是向其他主機發送ICMP PING數據包以查看它們是否響應的命令。-n 1
僅用於ping每個主機一次。192.168.1.%x
是要ping的主機的IP地址。最後一個八位字節被循環變量取代,我們記得,它從1
變爲255
。|
是垂直欄字符,或者來自shell中的管道,通常稱爲「管道」(即使我會說,J看起來更像是一個管道)。這用於將左側命令的輸出作爲輸入傳遞給右側的命令。find
,這是一個古老的古老程序,用於搜索文件和程序輸出中的文本並返回這些行。 (認真:使用findstr
如今,除非你計數線/I
意味着我們搜索不區分大小寫"reply"
是我們搜索的單詞全部放在一起,這是。在192.168.1.0/24子網和只打印的答覆坪每一個IP地址(甚至是廣播地址)的線。在PowerShell中的術語,我們可以達到同樣的用
Test-Connection (1..255|%{"192.168.1.$_"}) -Count 1 -ErrorAction SilentlyContinue
(這大約是剛上e致電ping
與許多地址實際上ping平行)。
很好的答案,謝謝。 –
請參閱'for /?','ping /?'和'find /?'。在你的命令中也有一些錯誤:a)搜索'reply'並不可靠。改用'TTL'。 b)逗號或空格,而不是'(1.1.255)'中的點c)管道符號是'|',而不是'/'。結果:'FOR/L%x在(1,1,255)中執行ping -n 1 192.168.1。%x | find「TTL」' – Stephan
@Stephan,我願意說即使TTL不能可靠工作在每一種語言。 – Joey
@Joey看來,「TTL」起作用是常識。你有沒有一個例子? – Stephan