本帖最后由 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.
复制代码
|