-
1 # 使用者4675280017213
-
2 # 使用者3942116958047
展開全部
先了解for下的delims的用法。delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的
預設分隔符集。明白之後再解釋tokens.tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代
的 for 本身。這會導致額外變數名稱的分配。m-n
格式為一個範圍。透過 nth 符號指定 mth。如果
符號字串中的最後一個字元星號,
那麼額外的變數將在最後一個符號解析之後
分配並接受行的保留文字。就是說,一段文字"a b c d e f g h”我們知道,for命令預設下以空格和跳格鍵作分隔符。那麼,這段東西就給拆成了8個部分。現在,我們需要第6個部分。那麼,就這樣寫:FOR /F "tokens=6" %A in ("a b c d e f g h”) DO ECHO %A那如果要多個呢?只要在tokens裡多加點數就是了命令的幫助中說“會導致額外變數名稱的分配”就是FOR /F "tokens=6,7" %A in ("a b c d e f g h”) DO ECHO %A那麼第7項就要用A的下一個字母B來表示變數。 %i 在 for 語句中顯式宣告,%j 和 %k 是透過
tokens= 選項隱式宣告的。可以透過 tokens= 一行
指定最多 26 個符號,只要不試圖宣告一個高於字母 "z" 或
"Z" 的變數。請記住,FOR 變數是單一字母、分大小寫和全域性的變數;
而且,不能同時使用超過 52 個。 從這段說明,也可以明白:tokens至多同時取出26段文字FOR /F "tokens=4-6" %A in ("a b c d e f g h”) DO ECHO %A則會取出第4、5、6項分別存入變數%A、%B、%C那如果,我們不按從小到大的順序排呢?FOR /F "tokens=4-6,2,1" %A in ("a b c d e f g h") DO ECHO %AFOR命令會自己為我們重排序號,從小到大,然後再取那麼編號重複?FOR /F "tokens=4-6,2,1,5" %A in ("a b c d e f g h") DO ECHO %AFOR會忽略重複的號碼。 再看這句話:如果符號字串中的最後一個字元星號,那麼額外的變數將在最後一個符號解析之後分配並接受行的保留文字。什麼意思呢?還是舉例FOR /F "tokens=1,2*" %A in ("a b c d e f g h") DO ECHO %A此時1、2部分存入%A、%B。剩下的呢?全部存入了%C,而且連空格一起保留了。就是說n*就是把第n+1項和後面的所有內容(包括分隔符)一起,讀入下一個空變數。那麼FOR /F "tokens=1,3,2*" %A in ("a b c d e f g h") DO ECHO %A此時,FOR將再次重排順序,這條命令等同於那麼FOR /F "tokens=1,2,3*" %A in ("a b c d e f g h") DO ECHO %A基本沒了吧
回覆列表
展開全部
下拉選項可以輸入data-tokens中的引數而選中相應option的資料