原帖由 sgaizxt001 于 2010-1-25 01:55 发表
经过测试,变量取值完全正确,那么问题出现在哪呢?代码2的循环操作跟代码1的完全一样,而且对于两个for语句来说,变量取得都没错啊,这到底为什么呢?
其实,变量取值已经出错了- for /f "delims=- tokens=1,2,3" %%i in (a.txt) do echo %%i %%j %%for /f "delims=- tokens=1,2,3" %%i in (a.txt) do echo %%i %%j
复制代码 两个for语句的结果完全一样,也就是说%%k根本就取不到值。
个人理解,delims最好放在最后面。如果delims之后还有其他语句,例如tokens和skip,一旦分隔符中有空格,for语句都会理解成delims与其他语句的间隔。- for /f "delims= - tokens=1,2,3" %%i in (a.txt) do echo %%i %%j %%k
复制代码 for语句会认为没有分隔符,但是- tokens=1,2,3这明显是for不能识别的,报错。- for /f "tokens=1,2,3 delims=- skip=4" %%i in (a.txt) do echo %%i %%j
复制代码 虽然有两个空格,但是for会认为这两个空格是delims与skip的间隔,所以分隔符只是-。
[ 本帖最后由 sysplay 于 2010-1-27 08:45 编辑 ] |