熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

For命令在Windows中的妙用及具體格式

2013-11-11 21:44:15  來源: Windows系統管理 

  在Windows中我們經常要批量地來完成相同的工作很多用戶往往是上網搜索第三方軟件來完成其實在Windows中巧妙地利用For命令就可以很輕松地完成很多批量工作為了更好地理解我們的下一步實戰先讓我們來看一下For命令的用法For命令的具體格式如下:
  
  For %variable IN (set) do command [commandparameters]
  
  %variable——指定一個單一字母可替換的參數
  
  (set)——指定一個或一組文件可以使用通配符
  
  command——指定對每個文件執行的命令
  
  commandparameters——為特定命令指定參數或命令行開關
  
  在批處理文件中使用 For 命令時指定變量請使用%%variable而不要用 %variable變量名稱是區分大小寫的所以%i不同於%I由於For命令的用法和參數非常多變化復雜這裡因篇幅原因就不再一一羅列了用戶可以在命令提示符後鍵入For /?來獲得具體幫助下面我們將直接進入實戰並結合實戰講述For命令的具體用法
  
   給文本文件批量加上落款
  
  在很多情況下我們編輯處理完文檔都要給文件加上一個包括通信地址QQEMAIL等等信息的落款如投往編輯部的稿件如果只有一篇文章直接輸入倒也罷了但假如你有很多這樣的文件該怎麼辦呢?難道每一篇稿件都要手工一個字一個字地輸入那一成不變的落款嗎?NO!完全沒有必要這樣費神我們可以一次性地給所有文件添加上落款假如我們要給放在ABCDE目錄下的所有文本文件加上落款那麼就請先建一個名為Addresstxt的文本文件錄入通信地址QQEmail等等信息保存到E盤的根目錄
  
  再新建一個文本文件錄入以下內容:
  
  MD E:\TEMPabcde
  
  for /r E:\ABCDE %%I in (*txt) do copy %%I+E:\addresstxt 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命令指定參數%IE:\ABCDE文件夾中的所有文本文件中取值 ;/r參數表示包括子目錄
  
   批量獲取文件列表
  
  如果我們需要制作某個目錄下的文件清單如電影文件的文件清單可以用For命令來輕松完成我們以制作F盤上的所有RM格式的電影文件的清單為例:
  
  先在F盤根目錄下建一個名為列文件清單bat的文本文件然後輸入以下內容並保存:
  
  For /r F:\ %%i in (*rm) DO @echo %%~fi >>F:\RMListtxt
  
  雙擊此批處理文件即可快速列出F盤上所有的以RM為擴展名的電影文件的清單
  
  提示:For命令指定參數%i從F盤的所有以RM為擴展名的文件中取值;@echo %%fi表示將所有的RM文件及其完整路徑顯示出來;>>F\RMListtxt表示將輸出結果重定向到F\RMListtxt文件中打開該文件即可看到詳細的目錄清單;f表示完整路徑還可以使用%n(文件名)%x(文件擴展名)%d(驅動器)%p(路徑)%s(完整路徑)%t(文件日期)%z(文件大小)等參數
  
   快速刪除磁盤上的空文件夾
  
  假設我們要清理D盤上的空文件夾那麼請先用記事本建一個名為killbat的文件在該文件中輸入以下內容:
  
  dir d:\ /ad /b /s |sort /r >>d:\killtxt
  
  For /f %%i in (d:\killtxt) DO rd %%i
  
  echo y |del d:\killtxt
  
  先查找並刪除全部Thumbsdb文件然後雙擊該文件D盤上所有的空文件夾很快就消失的無影無蹤了
  
  提示:dir d:\表示列D盤上的所有目錄包括子目錄列表其中參數/ad表示列所有目錄;參數/b表示只列出文件夾名稱而不顯示標題信息或摘要:參數/s表示搜索即查找D盤中的所有文件夾和子文件夾;|是管道符號將Dir命令的結果傳遞給sort命令;sort命令表示排序;/r表示逆序列排序之所以要逆序列排序是因為通過逆序列排序後D盤上的所有子文件夾總是會位於其父文件夾的前面這樣在用For命令刪除空文件夾時空的子文件夾被首先刪除了因此空的父文件夾就可以刪除了否則因空的父文件夾中尚有空的子文件夾會造成無法刪除的情況>>d:\killtxt的作用是讓屏幕回顯重新定位到d:\killtxt文件中
  
  For 命令中參數/f的作用是讓For命令從指定的文件中讀取數據作為變量示例是從Dir的結果文件d:\killtxt文件中讀取數據每次讀取一行傳遞給RD命令;RD命令的作用是刪除由For命令傳遞過來的每一個文件夾因RD命令無法刪除尚有內容的文件夾所以經過For命令的循環後只是刪除了所有的空文件夾有內容的文件夾會完好無損地被保留下來
  
   批量獲取局域網中所有IP地址與主機名的對應關系
  
  如果你是網管肯定需要獲取一張本網段內所有IP地址與主機名的對照表如果你不想使用第三方軟件的話不妨用For命令試試
  
  在命令提示符窗口中輸入以下命令:
  
  For /L %i in () DO ping a n %i |Find /i reply >>E:\IPAddresstxt
  
  好了等命令執行完畢打開E:\IPAddresstxt文件一張完整的IP與主機名的對照表已經初步形成了你只需作簡單的編輯修改即可打印輸出了
  
  提示:For命令指定參數%i開始每次增加直到為止即一個C類網段的全部地址如果用戶的局域網自行定義的了IP地址應根據實際情況設置如可以為;a表示獲取主機名;n 表示回顯的次數為默認情況下為次;Find /i reply表示查找已響應的主機即已ping通的主機;E:\IPAddresstxt表示將屏幕回顯內容輸入到:\IPAddresstxt文件中
From:http://tw.wingwit.com/Article/os/xtgl/201311/9107.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.