本帖最后由 cjiabing 于 2011-5-28 02:40 编辑
token与delims的困惑:
在以下处理中,在“tokens=* delims=o”一行命令中,已经定义了小写字母“o”为分隔符,为何后面显示出来的时候,还是显示字母“o”?
即使使用“tokens=1,2,* delims=o”,最后几个字母“o”仍然会出现。
在我们的理解中,被定义为分隔符的字符默认是被忽略不显示的,但以上“会显示的分隔符”让人困惑。
类似的问题很多,在定义分隔符提取指定列时,对此往往很无奈。delims或者tokens会消极怠工,不按规定完成任务。
| @echo off | | for /f "skip=25 usebackq tokens=* delims=echo" %%a in (%0) do echo %%a | | echo, | | echo, 注意观察最后一行的字母“o”。 | | echo, | | pause | | cls | | for /f "skip=25 usebackq tokens=* delims=o" %%a in (%0) do echo %%a | | echo, | | echo, 注意观察最后一行的字母“o”。 | | echo, | | pause | | cls | | for /f "skip=25 usebackq delims=o" %%a in (%0) do echo %%a | | echo, | | echo, 注意观察最后一行的字母“o”。 | | echo, | | pause | | cls | | for /f "skip=25 usebackq tokens=1,2,* delims=o" %%a in (%0) do echo [%%a] [%%b] [%%c] | | echo, | | echo, 注意观察最后一行的字母“o”。 | | echo, | | pause | | exit | | echo.&echo. | | echo. &set/p=按任意键返回&cls& | | echo.使用说明: | | c | | ch | | sssssssss echo eeeeeeeee | | ececechechoechoochochco | | eceho&echo&echoddls | | i love you,i love bathome.COPY |
|