DOS編程:FOR循環及在查看局域網所有IP的應用

FOR

對一組文件逐一運行一條命令。該命令可用在批處理文件中,也可命令提示符下直接調用。

語法:

FOR在批處理程序中的使用語法如下:

FOR %%變量 IN (集合) DO 命令 [命令參數]

FOR在命令提示符下的使用語法如下:

FOR %變量 IN (集合) DO 命令 [

參數 :

%%變量或%變量

代表一個可替換的變量。FOR命令將用指定的一組文件中的每一個文本字符串來替換%%變量(或%變量),直到此命令(在命令參數中指定的)處理完所有的文件爲止。
用%%變量來執行一批處理程序中的FOR命令。用%變量來執行命令提示符下的FOR命令。



集合
指定一個或多個要用特定命令對其進行處理的文件或文本字符串。圓括號必須得有。



命令
指定要對一組文件中每一文件進行處理的命令。

 

FOR─註解


使用關鍵字IN及DO

IN和DO並不是參數,但FOR命令中要求這兩個關鍵字。如果省略了這兩個關鍵字,
則MS-DOS將顯示一錯誤信息。



使用可替代變量

除了數字0到9之外,你可把任何字符用作變量,以避免與批處理參數%0到%9的混淆。對簡單的批處理程序來說,象%%F這樣的一個單一字符就足夠了。在複雜的批處理程序中,你可把多個值用於變量以區分不同的可替換變量。然而,在同一命令行上不能嵌套(增加)多個FOR命令。



指定一組文件

集參數可代表一組文件或幾組文件。你可用通配符(*及?)來指定一文件集。下面是合法的文件集:

(*.doc)

(*.doc *.txt *.me)

(jan*.doc jan*.rpt feb*.doc feb*.rpt)

(ar??1991.* ap??1991.*)

當你使用FOR命令時,集中的第一個值將代替%%變量(或%變量),而爲了處理此值MS-DOS將執行指定的命令;此過程一直持續進行,直到MS-DOS將對應於集中的值(或多值)的所有文件(或多組文件)處理完畢爲止。


--------------------------------------------------------------------------------

FOR─例子

假設你想用TYPE命令來顯示當前目錄下擴展名.DOC或.TXT的所有文件的內容。爲了做到這一點要使用可替代變量%F,並在命令提示符下輸下面的命令。

for %f in (*.doc *.txt) do type %f

在此例中,當前目錄下擴展名爲.DOC或.TXT的每一個文件將代替%F變量,直到顯示出每一個文件的內容爲止。若把每一個%F都替換成%%F,則此命令可用於一批處理文件。否則,MS-DOS將忽略此變量而顯示錯誤信息。

MS-DOS支持你想用於特定命令的開關、管道及重定向符。例如,爲了把前一例的輸出送到PRN(默認打印機口),應輸入下面的命令:

for %f in (*.doc *.txt) do type %f > prn:

 

DOS命令批量統計局域網內各臺電腦的IP地址和其相對應(2009-08-07 00:45:16)轉載標籤: 雜談 分類: dos命令  
網絡管理員在日常維護局域網時都會收集統計每臺電腦的IP地址和其相對應的MAC地址,這樣的好處是可以便捷、準確的控制管理每臺電腦,發現某臺電腦中毒或者數據流量異常能及時排查、封網。

能實現這種功能的工具在網上有很多,例如:超級網管(SuperLANadmin)等等,喜歡的朋友可以自己搜索一下。在這裏我主要談的是調用本機DOS命令來實現上述結果,畢竟我們不可能天天把工具帶在身邊。

地址解析協議(ARP)用於實現IP地址到網絡接口硬件地址的映射,該命令只有在安裝了 TCP/IP 協議之後纔可用。當某主機要向以太網中另一臺主機發送IP數據時,它首先根據目的主機的IP地址在ARP高速緩存中查詢相應的以太網地址,ARP高速緩存是主機維護的一個IP地址到相應的以太網地址的映射表。如果查到匹配的結點,則相應的以太網地址被寫入以太網幀首部,數據包被加入到輸入到輸出列隊等待發送。如果查詢失敗,ARP會先保留等待發送的IP數據包,然後廣播一個詢問目的主機硬件地址的ARP報文,等收到回答後再把IP數據包發送出去。

命令如下:

運行cmd.exe後執行:

for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%i
arp -a

回車,一隻煙的功夫就會看到收集好列表。

(注意:把192.168.1 IP地址替換成你所在局域網的IP地址)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章