本帖最后由 amwfjhh 于 2015-1-21 15:05 编辑
我们知道在FOR语句里面,可以使用tokens和delims(非必须,提供默认值)组合来对一些格式化文本进行切割,但在默认状况下,delims的分割字符会将多个连续的分割字符合并成一个,这在有些情况下能够简化我们的操作以节省时间(如多个不定长度连续空格分割的字符串)。但有些情况下我们需要用分割字符串严格按照一个分割符一个变量的对应关系解析出来,形如下方的文本
1.txt- 姓名,性别,语文,数学,英语,化学,物理,地理,历史,政治,总分
- 张三,男,98,89,78,,,,80,78,423
复制代码 如还按之前的解析的话,- @echo off
-
- for /f "tokens=1-11 skip=1 delims=," %%a in (1.txt) do (
- echo,姓名 : %%a
- echo,性别 : %%b
- echo,语文 : %%c
- echo,数学 : %%d
- echo,英语 : %%e
- echo,化学 : %%f
- echo,物理 : %%g
- echo,地理 : %%h
- echo,历史 : %%i
- echo,政治 : %%j
- echo,总分 : %%k
- )
- pause&goto :eof
复制代码 则历史,政治,总分所对应的数字则会被前移到化学,物理,地理三者的变量下,这显然不是我们希望的,请问各位这种情况在批处理你们又是如何处理的呢? |