中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 23:24
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决]把文本里每行不足5位的编号,前面加0补够5位
可打印版本  1,152 / 13
第1楼 userwww 发表于 2007-09-26 11:58
初级用户 发帖 57 积分 136
[已解决]把文本里每行不足5位的编号,前面加0补够5位
文本里原内容有些行不足5位,想找个批处理把不足5位的,前面加0补足5位.如下面把左边改为右边那样子

123 >>>>> 00123

66 >>>>> 00066

12546 >>>>> 12546

99 >>>>> 00099

..... ........... .....

8 >>>>> 00008

第2,7,8,9楼的方法都可以用,谢谢

[ Last edited by userwww on 2007-9-26 at 10:45 PM ]
第2楼 lxmxn 发表于 2007-09-26 12:19
版主 发帖 4,938 积分 11,386
use sed
第3楼 yoyodos 发表于 2007-09-26 12:23
初级用户 发帖 59 积分 128
我又晕,哈哈
第4楼 lxmxn 发表于 2007-09-26 12:25
版主 发帖 4,938 积分 11,386
Originally posted by yoyodos at 2007-9-26 12:23:
我又晕,哈哈

晕什么?
不好意思,不会用批处理写.
第5楼 userwww 发表于 2007-09-26 12:37
初级用户 发帖 57 积分 136
谢谢版主,我试了,好象文本没反应,不知我哪里搞错了,
我是把你那行命令新建一个批处理来运行的
第6楼 lxmxn 发表于 2007-09-26 13:12
版主 发帖 4,938 积分 11,386
RE userwww:
你直接在命令行运行,需要保存文件就重定向一下。
第7楼 wudixin96 发表于 2007-09-26 13:34
银牌会员 发帖 931 积分 1,928
第8楼 yoyodos 发表于 2007-09-26 14:30
初级用户 发帖 59 积分 128
第9楼 terse 发表于 2007-09-26 15:49
银牌会员 发帖 946 积分 2,404
@echo off&setlocal EnableDelayedExpansion
for /f "delims=" %%a in (test.txt) do (
set mmm=%%a
call :start
)
pause
goto :eof
:start
for /l %%i in (0,1,10) do if "!mmm:~%%i,1!"=="" set len=%%i && goto :123
:123
if !len! leq 6 set mmm=0!mmm!
if !len! leq 6 goto start
echo !mmm!>>test2.txt
第10楼 userwww 发表于 2007-09-26 18:44
初级用户 发帖 57 积分 136
二楼的方法可以用,原来我的机子上没有SED,找了半天终于搞清楚了
第11楼 userwww 发表于 2007-09-26 22:09
初级用户 发帖 57 积分 136
谢谢楼上的热心人,今天看了很久关于sed的话题,经测试第2,7,8,9楼的方法都可以用,谢谢.:P
第12楼 terse 发表于 2007-09-26 23:22
银牌会员 发帖 946 积分 2,404
7楼的处理 如果内容超出6位 取后5位吧.
第13楼 userwww 发表于 2007-09-28 20:52
初级用户 发帖 57 积分 136
Originally posted by terse at 2007-9-26 11:22 PM:
7楼的处理 如果内容超出6位 取后5位吧.


如果超过5位,是取后五位
第14楼 hdzc 发表于 2007-10-01 13:19
初级用户 发帖 86 积分 146
dddddddddddddddddd
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023