找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22214|回复: 4

[文本处理] [已解决]求助高手这个文本格式应该怎么处理?

[复制链接]
发表于 2012-9-11 09:40:03 | 显示全部楼层 |阅读模式
本帖最后由 jzp820927 于 2012-9-11 11:08 编辑

代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (1.txt) do (
  4. set c=%%i
  5. echo %%i|find "-">nul&&set jg=true
  6. if "!jg!"=="true" (
  7. for /f "tokens=1,2 delims=-" %%i in ("!c!") do set one=%%i&&set two=%%j
  8. for /l %%i in (!one!,1,!two!) do echo %%i
  9. ) else (
  10. echo %%i
  11. ))
  12. pause
复制代码
1.txt 内容如下:
1
2-4
6
8
5-7
9

要输出的结果是:用for循环遍历1.txt 文件,遇到单个数字直接输出,遇到2个数字中间带-的,按递增的顺序连续输出,比如2-4,就分开输出3行 2,3,4,一直输出到1.txt 文件结尾为止。
按上面我的代码处理1.txt后,我想要的结果应该是:
1
2
3
4
6
8
5
6
7
9

但实际结果不是这样,求助高手帮忙查找代码问题所在,或者哪个高手有更好的代码实现这个功能,也不吝赐教,非常感谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-9-11 09:56:34 | 显示全部楼层

  1. @echo off
  2. for /f "tokens=1-2 delims=-" %%a in (1.txt) do (
  3.     if "%%b" == "" (
  4.         echo %%a
  5.     ) else (
  6.         for /l %%i in (%%a, 1, %%b) do echo %%i
  7.     )
  8. )
  9. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
jzp820927 + 1 代码简洁,学习了!

查看全部评分

 楼主| 发表于 2012-9-11 10:36:38 | 显示全部楼层
非常感谢,问题已经解决了!
发表于 2012-9-11 13:33:44 | 显示全部楼层
vbs做练习...
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. Set File = FSO.OpenTextFile("1.txt",1)
  3. Do Until File.AtEndOfStream
  4.    strLine = File.ReadLine
  5.    If strLine = Replace(strLine,"-","") Then
  6.       strOut = strOut & strLine & vbCrLf
  7.    Else
  8.       Arr = Split(strLine,"-")
  9.       For i = Arr(0) To Arr(1)
  10.          strOut = strOut & i & vbCrLf
  11.       Next
  12.    End If
  13. Loop
  14. 'FSO.CreateTextFile("2.txt",True).Write strOut
  15. MsgBox strOut
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-9-12 00:03:53 | 显示全部楼层
都是牛人啊,感觉还是BAT方便些!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:34 , Processed in 0.019542 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表