[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 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 编辑 ]

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

TOP

  echo %%i 表明你想显示的是第一节字符串,要想显示头两节字符串,请使用 echo %%i %%j,要显示头三节,请使用 echo %%i %%j %%k……其余的依此类推,tokens部分和echo部分要一一对应才有效。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

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

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

TOP

请问,你想干什么呢?

TOP

原帖由 浅默 于 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

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

谢谢,我测试的时候已经去掉了

TOP

原帖由 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
复制代码

TOP

返回列表