在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命令的具體用法
給文本文件批量加上落款 在很多情況下
我們編輯處理完文檔
都要給文件加上一個包括
通信地址
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
參數表示包括子目錄
批量獲取文件列表 如果我們需要制作某個目錄下的文件清單
如電影文件的文件清單
可以用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
(文件大小)等參數
快速刪除磁盤上的空文件夾 假設我們要清理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命令的循環後
只是刪除了所有的空文件夾
有內容的文件夾會完好無損地被保留下來
批量獲取局域網中所有IP地址與主機名的對應關系 如果你是網管
肯定需要獲取一張本網段內所有IP地址與主機名的對照表
如果你不想使用第三方軟件的話
不妨用For命令試試
在命令提示符窗口中輸入以下命令:
For /L %i in (
) DO ping
a
n
%i |Find /i
reply
>>E:\IPAddress
txt
好了
等命令執行完畢
打開
E:\IPAddress
txt
文件
一張完整的IP與主機名的對照表已經初步形成了
你只需作簡單的編輯修改即可打印輸出了
提示:For命令指定參數
%i
從
開始
每次增加
直到
為止
即一個C類網段的全部地址
如果用戶的局域網自行定義的了IP地址
應根據實際情況設置
如可以為
;
a
表示獲取主機名;
n
表示回顯的次數為
次
默認情況下為
次;Find /i
reply
表示查找已響應的主機
即已ping通的主機;
E:\IPAddress
txt
表示將屏幕回顯內容輸入到
:\IPAddress
txt
文件中
From:http://tw.wingwit.com/Article/os/xtgl/201311/9107.html