标题: [文本处理] 【已解决】批处理怎样把相连数字用~连接? [打印本页]
作者: zhanglei1371 时间: 2014-8-5 20:45 标题: 【已解决】批处理怎样把相连数字用~连接?
本帖最后由 zhanglei1371 于 2014-8-7 09:35 编辑
如何用代码实现 将连续数字的“头”和“尾”用~相连
13, 14, 15, 19
2,3,4,6,7,8,9
.....
变为:
13~15,19
2~4,6~9
作者: xxpinqz 时间: 2014-8-6 16:06
- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- set str=%%a
- setlocal enabledelayedexpansion
- set str=!str:,= !
- set str=!str:,= !
- for %%b in (!str!) do (
- if not defined out (
- set /a a=b=out=%%b
- ) else (
- if !a! equ %%b (
- set "out=!b!~%%b"
- ) else (
- set "out=!out!,%%b"
- set "b=!out!"
- set a=%%b
- )
- )
- set /a a+=1
- )
- echo,!out!
- endlocal
- ))>b.txt
复制代码
作者: CrLf 时间: 2014-8-6 17:14
本帖最后由 CrLf 于 2014-8-7 17:43 编辑
简单暴力解,疯狂地 set:- @echo off&setlocal enabledelayedexpansion
- for /l %%a in (0 1 98) do set /a $%%a=%%a+1
-
- for /f "delims=" %%a in (a.txt) do (
- set "str=,%%a,"
- set "str=!str:,=,!"
- set "str=!str: =!"
- for %%b in (!str!) do for %%c in (!$%%b!) do (
- set "str=!str:~%%b,%%c,=~%%c,!"
- set "str=!str:,%%b,%%c~=,%%b~!"
- set "str=!str:,%%b,%%c,=,%%b~%%c,!"
- )
- echo !str:~1,-1!
- )
- pause
复制代码
作者: CrLf 时间: 2014-8-6 17:15
回复 2# xxpinqz
目测可以省掉 set str=!str:,= !,因为 , = ; 空格 tab 都是分隔符
作者: xxpinqz 时间: 2014-8-7 16:56
回复 4# CrLf
多谢指点。
这set的炉火纯青啊。佩服!不过set的的缺陷最怕碰到2,3,4,1,2,3,4
作者: CrLf 时间: 2014-8-7 17:45
回复 5# xxpinqz
先前未考虑乱序的情况,不过再加一个 set "str=!str:,%%b,%%c~=,%%b~!" 就好了,已修改
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |