Board logo

标题: [其他] 【已解决】批处理中的tokens=*和delims= 是起什么作用? [打印本页]

作者: 2290138    时间: 2008-8-27 16:01     标题: 【已解决】批处理中的tokens=*和delims= 是起什么作用?

for /f "tokens=* delims=" %%a in (%PATH%) do (.......)

其中的"tokens=* delims=" 是起什么作用?
作者: pusofalse    时间: 2008-8-27 16:07

论坛搜索for命令详解
作者: 2290138    时间: 2008-8-27 16:26

嗯,谢了,
搜了,还挺难懂的.再看看.
作者: Batcher    时间: 2008-8-27 17:46     标题: 转帖(出处不详)

test.txt 的内容为(行首有若干空格):
  1.     abc 。。
复制代码
比较以下两段代码的执行结果差异:
  1. @echo off
  2. for /f "delims=" %%i in (test.txt) do echo /%%i/
  3. pause
复制代码
  1. @echo off
  2. for /f "tokens=*" %%i in (test.txt) do echo /%%i/
  3. pause
复制代码
看到有什么差别了吗?

原因:"delims=" 的含义是取消默认的分隔符,所以会把行上的内容照搬下来,而 "tokens=*" 表示获取行上的所有内容,但是会忽略行首的所有空格。

[ 本帖最后由 Batcher 于 2009-3-18 16:01 编辑 ]
作者: kevinpeng    时间: 2009-8-15 14:49

" "tokens=*" 表示获取行上的所有内容,但是会忽略行首的所有空格。"谢谢解答,对于这种写法我一直有些模糊,现在终于清楚了!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2