DOS命令FOR /F 字符處理功能

轉載自 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 個以上都在使用中。


 

發佈了11 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章