DOS中for /f 参数讲解

最近在学DOS,记录以下心得:
在命令提示符中输入 “for /?”可以得到for用法的详解,但是其中的某些参数中的选项貌似并不好理解,比如 for /r "tokens=, , ";这个选项有什么作用呢?

DOS中得到部分如下:
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
eol=c           - 指一个行注释字符的结尾(就一个)
        skip=n          - 指在文件开始时忽略的行数。
        delims=xxx      - 指分隔符集。这个替换了空格和制表符的
                          默认分隔符集。
        tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代
                          的 for 本身。这会导致额外变量名称的分配。m-n
                          格式为一个范围。通过 nth 符号指定 mth。如果
                          符号字符串中的最后一个字符星号,
                          那么额外的变量将在最后一个符号解析之后
                          分配并接受行的保留文本。
        usebackq        - 指定新语法已在下类情况中使用:
                          在作为命令执行一个后引号的字符串并且一个单
                          引号字符为文字字符串命令并允许在 file-set
                          中使用双引号扩起文件名称。

简单的说就是将文本中的内容以行为单位,进行分割,用"delims=,"来分割,这里用","作为分隔符,当“,”只有一个时候,将分开的两段的第一段传给参数%i,第二段传给%j(如果设定了"tokens=1,2"的话),如果一行中的","号有很多的话,就可以得到n+1段截得的子内容,n为","的个数,而这里 for只能接受最多3个分段,分别传给%i,%j,%k。这三个是写死的,只能是这三个,不能;另外起变量名。用"tokens=1,2,3"将截得的字段的前三个依次传给%i,%j,%k。用"tokens=1,2*"将截得的字段前两个传给%i,%j,以后的不管多少都传给%k。
另外说一下for中"/r"与"/f"的区别,“/r”针对的是文件目录,“/f”针对的是具体文件的内容。

小编学识有限,文章中难免出现错误,还望谅解,欢迎大家指出,我会及时改正。

猜你喜欢

转载自blog.csdn.net/c_1969/article/details/80173422