中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 03:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]字符处理:把小于10位的数字补足10位(左侧补零) 查看 759 回复 3
楼 主 [求助]字符处理:把小于10位的数字补足10位(左侧补零) 发表于 2008-12-25 22:58 ·  中国 北京 光环新网
新手上路
积分 13
发帖 9
注册 2008-05-15 11:03
18年会员
UID 118723
性别 男
状态 离线
如下字段:
1
12
123
每行的字符数是任意的,但都小于10位,现在想把每行的这个字段还原为10位,不足的前面补零,结果为:
0000000001
0000000012
0000000123 请问用什么办法呢

谢谢指点

───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字
说明:原标题"请教这样的字符处理"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-12-25 at 23:36 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT -2 2008-12-25 23:37
2 发表于 2008-12-25 23:18 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
前面补 9 个 0,再取倒数 10 位:

@echo off & setlocal EnableDelayedExpansion
set file=c:\a.txt
for /f "usebackq" %%a in ("%file%") do (
set str=000000000%%a
if not defined . (
set .= & >"%file%" echo !str:~-10!
) else (
>>"%file%" echo !str:~-10!
)
)
3 发表于 2008-12-25 23:20 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
@echo off
set "var=0000000000"
for /f "delims=" %%a in ('more +10^<%~fs0') do (
set "str=%%a"
setlocal enabledelayedexpansion
set "str=%var%!str!"
echo !str:~-10!
endlocal
)
pause&goto :eof
112
123
12345
4 发表于 2008-12-25 23:40 ·  中国 湖北 黄石 电信
初级用户
积分 31
发帖 17
注册 2008-01-04 12:50
18年会员
UID 107637
性别 男
状态 离线
这个不知可以吗
@echo off&setlocal enabledelayedexpansion
for /f %%a in ('^more ^<a.txt') do (
set txt=000000000%%a
echo !txt:~-10,10!>>a1.txt
)
del /q a.txt&ren a1.txt a.txt


[ Last edited by glbosom on 2008-12-25 at 23:41 ]
论坛跳转: