非常好的for 教程, 当时我就是看这个学习for 的第1/2页
作者 佚名
来源 批处理
浏览
发布时间 2013-07-09
这个被我赋予破坏性质的参数后,我们来看最后一个参数 /f 含有/F的for详细说明 含有/F的for有很大的用处,在批处理中使用的最多,用法如下: 格式: FOR/F["options"]%%iIN(file)DOcommand FOR/F["options"]%%iIN("string")DOcommand FOR/F["options"]%%iIN(''command'')DOcommand 这个可能是最常用的,也是最强的命令,主要用来处理文件和一些命令的输出结果。 file代表一个或多个文件 string代表字符串 command代表命令 ["options"]可选 对于FOR/F%%iIN(file)DOcommand file为文件名,按照官方的说法是,for会依次将file中的文件打开,并且在进行到下一个文件之前将每个文件读取到内存,按照每一行分成一个一个的元素,忽略空白的行,看个例子。 假如文件a.txt中有如下内容: 第1行第1列第1行第2列第1行第3列 第2行第1列第2行第2列第2行第3列 第3行第1列第3行第2列第3行第3列 你想显示a.txt中的内容,会用什么命令呢?当然是type,typea.txt for也可以完成同样的命令: for/f%%iin(a.txt)doecho%%i 还是先从括号执行,因为含有参数/f,所以for会先打开a.txt,然后读出a.txt里面的所有内容,把它作为一个集合,并且以每一行作为一个元素,所以会产生这样的集合, {“第1行第1列第1行第2列第1行第3列”,//第一个元素 “第2行第1列第2行第2列第2行第3列”,//第二个元素 “第3行第1列第3行第2列第3行第3列”}//第三个元素 集合中只有3个元素,同样用%%i依次代替每个元素,然后执行do后面的命令。 具体过程: 用%%i代替“第1行第1列第1行第2列第1行第3列”,执行do后面的echo%%i,显示“第1行第1列第1行第2列第1行第3列”, 用%%i代替“第2行第1列第2行第2列第2行第3列”,执行echo%%i,显示“第2行第1列第2行第2列第2行第3列”, 依次,直到每个元素都代替完为止。 为了加强理解/f的作用,请执行一下两个命令,对比即可明白: for/f%%iin(a.txt)doecho%%i//这个会显示a.txt里面的内容,因为/f的作用,会读出a.txt中 的内容。 for%%iin(a.txt)doecho%%i//而这个只会显示a.txt这个名字,并不会读取其中的内容。 通过上面的学习,我们发现for/f会默认以每一行来作为一个元素,但是如果我们还想把每一行再分解更小的内容,该怎么办呢?不用担心,for命令还为我们提供了更详细的参数,使我们将每一行分为更小的元素成为可能。 它们就是:delims和tokens delims用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键 比如,还是上面的文件,我们执行下面的命令: for/f"delims="%%iin(a.txt)doecho%%i 显示的结果是: 第1行第1列 第2行第1列 第3行第1列 为什么是这样的呢。因为这里有了delims这个参数,=后面有一个空格,意思是再将每个元素以空格分割,默认是只取分割之后的第一个元素。 执行过程是: 将第一个元素“第1行第1列第1行第2列第1行第3列”分成三个元素:“第1行第1列”“第1行第2列”“第1行第3列”,它默认只取第一个,即“第1行第1列”,然后执行do后面的命令,依次类推。 但是这样还是有局限的,如果我们想要每一行的第二列元素,那又如何呢? 这时候,tokens跳出来说,我能做到。 它的作用就是当你通过delims将每一行分为更小的元素时,由它来控制要取哪一个或哪几个。 还是上面的例子,执行如下命令: for/f"tokens=2delims="%%iin(a.txt)doecho%%i 执行结果: 第1行第2列 第2行第2列 第3行第2列 如果要显示第三列,那就换成tokens=3。 同时tokens支持通配符*,以及限定范围。 如果要显示第二列和第三列,则换成tokens=2,3或tokens=2-3,如果还有更多的则为:tokens=2-10之类的。 此时的命令为: for/f"tokens=2,3delims="%%iin(a.txt)doecho%%i%%j 怎么多出一个%%j? 这是因为你的tokens后面要取每一行 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 写批处理必备的一些命令参数使用技巧下一篇: 制作bat批处理和任意QQ号聊天!
关于非常好的for 教程, 当时我就是看这个学习for 的第1/2页的所有评论