http://www.allenware.com/icsw/icswidx.htm (reference)
http://tldp.org/LDP/abs/html/dosbatch.html (contrast in unix shell)
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters] options为可选参数包括: eol=c - 指一个行注释字符的结尾(就一个) (注释掉以某个字符开始的行) tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。m-n (即分割为几部分,举例:tokens=2,3* 就等于分成了4部分,后面的变量从从第二部分开始取) %variable 指定一个单一字母为可替换的参数。指定变量请使用 %%variable。(与tokens划分的部分一一对应)。 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' 或 2. linux command: find *test* f -print0 | xargs -0 cat 此时文件名中可以包含空格 |