中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-17 19:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教一个文本前加序号问题 查看 881 回复 4
楼 主 请教一个文本前加序号问题 发表于 2010-09-21 17:43 ·  中国 江苏 泰州 电信
新手上路
积分 10
发帖 10
注册 2008-11-04 11:18
UID 129947
性别 男
状态 离线
文本为:
王一,2
王一,5
张二,4
张二,5
.......
李四,7
求输出结果为:
0001,王一,2
0002,王一,5
0003, 张二,4
0004,张二,5
........
9999, 李四,7
注意输出的不是1、2、3、4......,而是0001、0002、0003、0004......9999
谢谢了!

[ Last edited by haiyuey on 2010-9-23 at 12:58 ]
2 发表于 2010-09-23 14:19 ·  中国 江苏 泰州 电信
新手上路
积分 10
发帖 10
注册 2008-11-04 11:18
UID 129947
性别 男
状态 离线
应该是用FINDSTR 取出序号,再加‘0000’,取后截取后四位数,但不知怎样弄
3 发表于 2010-09-23 18:35 ·  中国 吉林 长春 电信
初级用户
枫中残雪
积分 65
发帖 43
注册 2010-04-29 23:20
UID 165810
性别 男
来自 吉林省长春市
状态 离线
我用的不是FINDSTR
@echo off&setlocal enabledelayedexpansion
set q=0000
set b=0
for /f "delims=" %%i in (a.txt) do (set /a b+=1
set w=!q!!b!
set r=!w: =!
set e=!r:~-4!
echo !e!%%i >>c.txt)
pause
但是(set w=!q!!b!)出了个空格。不知为什么,最近玩了几天,太累了,我就不想为什么了,交给你了
4 发表于 2010-09-23 18:47 ·  中国 江苏 泰州 电信
新手上路
积分 10
发帖 10
注册 2008-11-04 11:18
UID 129947
性别 男
状态 离线
不想了,直接把空格替换掉,谢谢了
5 发表于 2010-09-24 20:28 ·  中国 湖北 武汉 教育网
新手上路
积分 17
发帖 19
注册 2010-03-22 20:52
UID 162805
性别 男
来自 湖北
状态 离线

@echo off&color a&setlocal enabledelayedexpansion
for %%a in (%*) do (
set /a n+=1
set file!n!=%%a
)
for /l %%b in (1 1 %n%) do (
for /f "tokens=* delims=" %%c in ('type !file%%b!') do (
set /a m+=1
if "!m:~1,1!"=="" if not "!m:~0,1!"=="" set forestr=000
if "!m:~2,1!"=="" if not "!m:~1,1!"=="" set forestr=00
if "!m:~3,1!"=="" if not "!m:~2,1!"=="" set forestr=0
echo !forestr!!m!,%%c>>!file%%b!.txt
)
)

这个是拖放执行的,直接把你的要加序号的文本,拖放到这个批处理上面,支持多文件。

[ Last edited by btpg on 2010-9-24 at 20:29 ]
论坛跳转: