中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-27 15:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]把文本里每行以0开头的编号中的0删除 查看 1,081 回复 6
楼 主 [已解决]把文本里每行以0开头的编号中的0删除 发表于 2007-10-05 16:35 ·  中国 广东 东莞 电信
初级用户
★★
积分 136
发帖 57
注册 2007-09-08 11:11
18年会员
UID 96854
性别 男
状态 离线
把文本里每行以0开头的编号中的0删除
如下

00001 张三 >>> 1 张三
00002 李四 >>> 2 李四
00003 王五 >>> 3 王五
............... >>> ........


但我参考某位高人的P改了一下,却把空格后面的部分给忽略了,得出

00001 张三 >>> 1
00002 李四 >>> 2
00003 王五 >>> 3
............... >>> ...

for /f "delims=*" %%a in (00.txt) do call :next %%a
echo Finish...
goto :eof
:next
set pp=%1

:loop
if %pp:~0,1%==0 set pp=%pp:~1%& goto :loop
@echo %pp% >>ww.txt

不知哪里出错,请指点一下

[ Last edited by userwww on 2007-10-5 at 11:39 PM ]
2 发表于 2007-10-05 17:11 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
for /f "delims=" %%a in (00.txt) do call :next "%%a"
echo Finish...
goto :eof
:next
set pp=%~1

:loop
if %pp:~0,1%==0 set pp=%pp:~1%& goto :loop
@echo %pp% >>ww.txt
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
userwww +2 2007-10-05 23:39
3 发表于 2007-10-05 23:39 ·  中国 广东 东莞 电信
初级用户
★★
积分 136
发帖 57
注册 2007-09-08 11:11
18年会员
UID 96854
性别 男
状态 离线
可以用了,谢谢lxmxn
4 发表于 2007-10-06 00:17 ·  中国 四川 自贡 电信
初级用户
游荡的孤魂
积分 79
发帖 29
注册 2007-04-02 11:08
19年会员
UID 83714
性别 男
来自 湖南
状态 离线

@echo off
for /f "delims=0 tokens=*" %%i in (00.txt) do echo %%i
pause
本帖最近评分记录 (共 3 条) 点击查看详情
评分人分数时间
lxmxn +4 2007-10-06 00:44
userwww +2 2007-10-06 16:14
moniuming +5 2008-11-26 23:47
5 发表于 2007-10-06 16:19 ·  中国 广东 东莞 电信
初级用户
★★
积分 136
发帖 57
注册 2007-09-08 11:11
18年会员
UID 96854
性别 男
状态 离线
呵呵,4F的P真简洁,一个For就搞定了,收下采用,谢谢
6 发表于 2008-11-26 19:13 ·  中国 广东 东莞 电信
新手上路
积分 18
发帖 14
注册 2008-09-18 20:33
17年会员
UID 125988
性别 男
状态 离线
这个解决了我问题顶一下~!4楼的最好~!
7 发表于 2008-11-27 09:12 ·  中国 湖北 荆门 电信
初级用户
★★
积分 186
发帖 117
注册 2006-08-14 14:50
19年会员
UID 60491
状态 离线
Originally posted by For at 2008-11-26 19:13:
这个解决了我问题顶一下~!4楼的最好~!

记录超过10条再看看。
后面的名字中若有0也会出错。
论坛跳转: