ping的批處理文件編寫

做爲一名網絡工程師,經常要測試某地網絡的好壞,而最直接的命令就是ping,但是一次ping好多天,而且每隔一段時間就要ping和tracert,使工作繁瑣麻煩,所以就需要學習一些簡單的批處理了。
下面跟懶人簡單介紹一下ping的批處理文件編寫。
首先,在電腦的任一個地方,(我習慣在桌面)新建一個文本文檔,打開之後寫入下面語句
date/t >>c:test.txt  (顯示日期,並重定向寫入到c盤下text.txt下)
time/t >>c:test.txt  (顯示時間,並重定向寫入到c盤下text.txt下)
ping -n 50 192.168.1.1 >>c:test.txt  (執行ping命令,ping地址192.168.1.1總共50個包,然後寫入c盤下test.txt文件中)
tracert 192.168.1.1 >>c:test.txt (執行tracert命令,tracert地址192.168.1.1,並寫入c盤下的test.txt文件中)
然後,寫入以上簡單的命令後保存退出,並重命名剛纔的文本文檔,要以後綴名bat結尾(注:該文件不要重命名爲ping.bat,否則容易陷入DOS循環。原因:DOS內部命令與批文件重名,會陷入DOS循環)

那如何讓批處理文件每隔一定的時間執行一次呢!
只需要在用GOTO即可;舉例如下:
@echo off
:main
ping 192.168.1.1 >>c:test.txt
ping -n 60 127.1>nul&goto main
(其中goto就是跳轉的意思,60就是大約60秒;大概的意思應該就是執行ping命令,執行完60秒以後重新跳轉到開始繼續執行ping命令,其中60秒的時間可以修改)

大家都知道如果ping某個地址50個包,然後重定向到文本中,從文本查看的時候,我們有時只需要查看丟包率和延時,其中50個包的往返信息都沒用,如何將那些沒用的信息去掉呢!
下面需要用到管道符|find命令;還是舉例如下:
ping 192.168.1.1 |find /v "Request timed out"|find /v "Reply from">>c:test.txt
(其中管道符|的意思是將上一命令執行的結果傳遞給下一命令去處理;find是查找的意思,/v是find的參數,意思是顯示所有未包含指定字符串的行,其中find還有其他參數如下
/V 顯示所有未包含指定字符串的行。 /C 僅顯示包含字符串的行數。 /N 顯示行號。 /I 搜索字符串時忽略大小寫。 /OFF[LINE] 不要跳過具有脫機屬性集的文件。
上面一句總的意思是將ping 192.168.1.1輸出的結果剔除有Request timed out和Reply from的行,再將結果保存到test.txt文件中)

下面寫一個簡單的批處理文件供大家參考
@echo off :main date/t >>d:a.txt time/t >>d:a.txt
date/t >>d:t.txt time/t >>d:t.txt ping -n 5 192.168.100.1 |find /v "Request timed out"|find /v "Reply from">>d:a.txt tracert 192.168.100.2 >>d:t.txt echo -------------------------------------------------------------------------------- >>d:a.txt echo -------------------------------------------------------------------------------- >>d:t.txt ping -n 3600 127.1>nul&goto main

接下來再給同行介紹一個ping某一地址段的批處理文件:
for /l %p in (1,1,101) do @ping 192.168.0.%p -n 1 >>c:test.txt
意思是:ping192.168.0段的地址,從192.168.0.1開始ping,每隔1個IPping一個包,一直ping到192.168.0.101,然後將結果保存到c盤下的test.txt文件中。
以上爲學習中的簡單總結,希望能幫到同行們,如有問題請留言。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章