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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章