Board logo

标题: [文本处理] tokens不能使用连续符号? [打印本页]

作者: adam_chenzh    时间: 2009-6-28 01:54     标题: tokens不能使用连续符号?

  1. @echo off
  2. set /p n=请输入文件名称:
  3. set /p h=请输入范围:
  4. echo %h%
  5. for /f "delims=, tokens=%h%" %%i in (%n%) do (echo %%i)
  6. pause
复制代码
文本文件1.txt
  1. 1,2,3,4,5,6,7,8
复制代码
在输入范围时,不管输入2-7还是2,3,4,6这样的字符串,输出的结果都是第一个字符,这里是2
请问我哪里错了?

[ 本帖最后由 adam_chenzh 于 2009-6-28 19:13 编辑 ]
作者: adam_chenzh    时间: 2009-6-28 01:57

还有如果我的文本是这样的,如何改进代码
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
复制代码

作者: namejm    时间: 2009-6-28 08:45

  echo %%i 表明你想显示的是第一节字符串,要想显示头两节字符串,请使用 echo %%i %%j,要显示头三节,请使用 echo %%i %%j %%k……其余的依此类推,tokens部分和echo部分要一一对应才有效。
作者: 浅默    时间: 2009-6-28 09:08

@echo off
::set /p n=请输入文件名称:
set /p h=请输入范围:
echo %h%
::for /f "delims=, tokens=%h%" %%i in (%n%) do (echo %%i)
pause

是不是你忘了把::号去掉了?
作者: shqf    时间: 2009-6-28 17:00

请问,你想干什么呢?
作者: adam_chenzh    时间: 2009-6-28 19:14

原帖由 浅默 于 2009-6-28 09:08 发表
@echo off
::set /p n=请输入文件名称:
set /p h=请输入范围:
echo %h%
::for /f "delims=, tokens=%h%" %%i in (%n%) do (echo %%i)
pause

是不是你忘了把::号去掉了?

谢谢,我测试的时候已经去掉了
作者: adam_chenzh    时间: 2009-6-28 19:18

原帖由 shqf 于 2009-6-28 17:00 发表
请问,你想干什么呢?

读取文件,然后显示文件中指定范围的数据,例如文件1.txt
  1. 1,2,3,4,5,6,7
复制代码
  1. @echo off
  2. set /p n=请输入文件名称:               //输入1.txt
  3. set /p h=请输入范围:                   //输入2-7
  4. echo %h%
  5. for /f "delims=, tokens=%h%" %%i in (%n%) do (echo %%i)
  6. pause
复制代码

输入所示参数显示出结果
  1. 2
  2. 3
  3. 4
  4. 5
  5. 6
  6. 7
复制代码





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