轉載自 http://hi.baidu.com/haohaopc/blog/item/1924e0244376b5024d088d63.html
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
options爲可選參數包括:
eol=c - 指一個行註釋字符的結尾(就一個) (個人理解是:註釋掉以某個字符開始的行)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的
默認分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代
的 for 本身。這會導致額外變量名稱的分配。m-n
格式爲一個範圍。通過 nth 符號指定 mth。如果
符號字符串中的最後一個字符爲星號,
那麼額外的變量將在最後一個符號解析之後
分配並接受行的保留文本。 (個人理解是:分割爲幾部分)
usebackq - 指定新語法已在下類情況中使用:
在作爲命令執行一個後引號的字符串並且一個單
引號字符爲文字字符串命令並允許在 filenameset
中使用雙引號擴起文件名稱。
%variable 指定一個單一字母爲可替換的參數。指定變量請使用 %%variable。
for /f的主要作用是從文本行中提取出特定的字符串。因此,它的每一個循環處理的就是一行文本。要從這行文本中提取出特定的字符串,就需要對這一行文本進行分隔,分隔的結果就是將這一行文本分成了若干個部分,例如下面一行文本:
2007-04-02
for /f "tokens=1-3 delims=-" %1 in ("2007-04-02") do @echo %2%3
首先delims利用"-"進行分隔
tokens 指明爲1-3 說明是3部分,還可以用其他方式表達如 tokens=1,2,3 或者tokens=1,2,* (*表示出1,2部分外剩餘的部分,這個示例裏面就代表第3部分)
%1的意思是參數從%1開始劃分(也可以是字母) 後面兩部分依次是%2和%3
in 說明要處理的字符在哪
do 表示開始執行命令
@echo作用是隱藏命令(屏幕輸出時就隱藏了echo命令)
%2%3 說明輸出字符的排序,可以添加字符進行連接如: %2月%3日 就會輸出 04月02日
注意事項:
您可以通過 tokens= 一行指定最多 26 個符號,只要不試圖說明一個高於字母 'z' 或
'Z' 的變量。請記住,FOR 變量是單一字母、分大小寫和全局的;而且, 同時不能有 52 個以上都在使用中。