标题: [文本处理] [已解决]求助高手这个文本格式应该怎么处理? [打印本页]
作者: jzp820927 时间: 2012-9-11 09:40 标题: [已解决]求助高手这个文本格式应该怎么处理?
本帖最后由 jzp820927 于 2012-9-11 11:08 编辑
代码如下:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (1.txt) do (
- set c=%%i
- echo %%i|find "-">nul&&set jg=true
- if "!jg!"=="true" (
- for /f "tokens=1,2 delims=-" %%i in ("!c!") do set one=%%i&&set two=%%j
- for /l %%i in (!one!,1,!two!) do echo %%i
- ) else (
- echo %%i
- ))
- 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
但实际结果不是这样,求助高手帮忙查找代码问题所在,或者哪个高手有更好的代码实现这个功能,也不吝赐教,非常感谢!
作者: Demon 时间: 2012-9-11 09:56
- @echo off
- for /f "tokens=1-2 delims=-" %%a in (1.txt) do (
- if "%%b" == "" (
- echo %%a
- ) else (
- for /l %%i in (%%a, 1, %%b) do echo %%i
- )
- )
- pause
复制代码
作者: jzp820927 时间: 2012-9-11 10:36
非常感谢,问题已经解决了!
作者: apang 时间: 2012-9-11 13:33
vbs做练习...- Set FSO = CreateObject("Scripting.FileSystemObject")
- Set File = FSO.OpenTextFile("1.txt",1)
- Do Until File.AtEndOfStream
- strLine = File.ReadLine
- If strLine = Replace(strLine,"-","") Then
- strOut = strOut & strLine & vbCrLf
- Else
- Arr = Split(strLine,"-")
- For i = Arr(0) To Arr(1)
- strOut = strOut & i & vbCrLf
- Next
- End If
- Loop
- 'FSO.CreateTextFile("2.txt",True).Write strOut
- MsgBox strOut
复制代码
作者: jzp820927 时间: 2012-9-12 00:03
都是牛人啊,感觉还是BAT方便些!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |