For命令在Windows中的妙用
在Windows中,咱們常常要批量地來完成相同的工做,不少用戶每每是上網搜索第三方軟件來完成。其實在Windows中,巧妙地利用For命令就能夠很輕鬆地完成不少批量工做。爲了更好地理解咱們的下一步實戰,先讓咱們來看一下For命令的用法。For命令的具體格式以下: For %variable IN (set) do command [command-parameters], %variable——指定一個單一字母可替換的參數 (set)——指定一個或一組文件,可使用通配符 command——指定對每一個文件執行的命令 command-parameters——爲特定命令指定參數或命令行開關 在批處理文件中使用 For 命令時,指定變量請使用「%%variable」,而不要用「 %variable」。變量名稱是區分大小寫的,因此「%i」不一樣於「%I」。因爲For命令的用法和參數很是多,變化複雜,這裏因篇幅緣由就再也不一一羅列了,用戶能夠在命令提示符後鍵入「For /?」來得到具體幫助。下面咱們將直接進入實戰,並結合實戰講述For命令的具體用法。 1. 給文本文件批量加上落款 在不少狀況下,咱們編輯處理完文檔,都要給文件加上一個包括「通訊地址、QQ、E-MAIL等等信息」的落款,如投往編輯部的稿件。若是隻有一篇文章,直接輸入倒也罷了,但假如你有不少這樣的文件,該怎麼辦呢?難道每一篇稿件都要手工一個字一個字地輸入那一成不變的落款嗎?NO!徹底沒有必要這樣費神,咱們能夠一次性地給全部文件添加上落款,假如咱們要給放在「ABCDE」目錄下的全部文本文件加上落款。那麼就請先建一個名爲Address.txt的文本文件,錄入通訊地址、QQ、E-mail等等信息,保存到E盤的根目錄。 再新建一個文本文件,錄入如下內容: MD E:\TEMPabcde for /r E:\ABCDE %%I in (*.txt) do copy %%I+E:\address.txt E:\tempABCDE\ for /r E:\tempABCDE %%I in (*.txt) do copy %%I E:\ABCDE\ echo y|del E:\TEMPabcde echo y|rd E:\TEMPabcde 錄入完畢,經檢查確認無誤後,另存爲「給文件加落款.bat」,也保存到E盤的根目錄。如今,只需雙擊此批處理文件,就能夠爲E:\ABCDE文件夾中全部的TXT文件加上落款。 晨風提示:For命令指定參數「%I」從「E:\ABCDE」文件夾中的全部文本文件中取值 ;「/r」參數表示包括子目錄。 2. 批量獲取文件列表 若是咱們須要製做某個目錄下的文件清單,如電影文件的文件清單,能夠用For命令來輕鬆完成。咱們以製做F盤上的全部RM格式的電影文件的清單爲例: 先在F盤根目錄下建一個名爲「列文件清單.bat」的文本文件,而後輸入如下內容並保存: For /r F:\ %%i in (*.rm) DO @echo %%~fi >>F:\RMList.txt 雙擊此批處理文件,便可快速列出F盤上全部的以RM爲擴展名的電影文件的清單。 晨風提示:For命令指定參數「%i」從F盤的全部以RM爲擴展名的文件中取值;「@echo %%fi」表示將全部的RM文件及其完整路徑顯示出來;「>>F\RMList.txt」表示將輸出結果重定向到F\RMList.txt文件中,打開該文件,便可看到詳細的目錄清單;「f」表示完整路徑。還可使用「%n」(文件名)、「%x」(文件擴展名)、「%d」(驅動器)、「%p」(路徑)、「%s」(完整路徑)、「%t」(文件日期)、「%z」(文件大小)等參數。 3. 快速刪除磁盤上的空文件夾 假設咱們要清理D盤上的空文件夾,那麼請先用記事本建一個名爲「kill.bat」的文件,在該文件中輸入如下內容: dir d:\ /ad /b /s |sort /r >>d:\kill.txt For /f %%i in (d:\kill.txt) DO rd %%i echo y |del d:\kill.txt 先查找並刪除所有「Thumbs.db」文件,而後雙擊該文件,D盤上全部的空文件夾很快就消失的無影無蹤了。 晨風提示:「dir d:\」表示列D盤上的全部目錄包括子目錄列表,其中參數「/ad」表示列全部目錄;參數「/b」表示只列出文件夾名稱而不顯示標題信息或摘要:參數「/s」表示搜索,即查找D盤中的全部文件夾和子文件夾;「|」是管道符號,將Dir命令的結果傳遞給「sort」命令;「sort」命令表示排序;「/r」表示逆序列排序。之因此要逆序列排序,是由於經過逆序列排序後,D盤上的全部子文件夾老是會位於其父文件夾的前面,這樣在用For命令刪除空文件夾時,空的子文件夾被首先刪除了,所以空的父文件夾就能夠刪除了。不然,因空的父文件夾中尚有空的子文件夾,會形成沒法刪除的狀況。「>>d:\kill.txt」的做用是讓屏幕回顯從新定位到「d:\kill.txt」文件中。 For 命令中參數「/f」的做用是讓For命令從指定的文件中讀取數據做爲變量,示例是從Dir的結果文件「d:\kill.txt」文件中讀取數據,每次讀取一行傳遞給RD命令;RD命令的做用是刪除由For命令傳遞過來的每個文件夾,因RD命令沒法刪除尚有內容的文件夾,因此通過For命令的循環後,只是刪除了全部的空文件夾,有內容的文件夾會無缺無損地被保留下來。 4. 批量獲取局域網中全部IP地址與主機名的對應關係 若是你是網管,確定須要獲取一張本網段內全部IP地址與主機名的對照表。若是你不想使用第三方軟件的話,不妨用For命令試試。 在命令提示符窗口中輸入如下命令: For /L %i in (0,1,254) DO ping -a -n 1 192.168..0.%i |Find /i "reply" >>E:\IPAddress.txt 好了,等命令執行完畢,打開「E:\IPAddress.txt」文件,一張完整的IP與主機名的對照表已經初步造成了,你只需做簡單的編輯修改便可打印輸出了。 晨風提示:For命令指定參數「%i」從0開始,每次增長1,直到254爲止,即一個C類網段的所有地址。若是用戶的局域網自行定義的了IP地址,應根據實際狀況設置,如能夠爲「172.16.0」;「-a」表示獲取主機名;「-n -1」表示回顯的次數爲1次,默認狀況下爲4次;Find /i "reply「表示查找已響應的主機,即已ping通的主機;「E:\IPAddress.txt」表示將屏幕回顯內容輸入到「:\IPAddress.txt」文件中。
歡迎關注本站公眾號,獲取更多信息