Board logo

标题: [求助]字符处理:把小于10位的数字补足10位(左侧补零) [打印本页]

作者: ruanjiaoxia     时间: 2008-12-25 22:58    标题: [求助]字符处理:把小于10位的数字补足10位(左侧补零)

如下字段:
1
12
123
每行的字符数是任意的,但都小于10位,现在想把每行的这个字段还原为10位,不足的前面补零,结果为:
0000000001
0000000012
0000000123  请问用什么办法呢

谢谢指点

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


[ Last edited by HAT on 2008-12-25 at 23:36 ]
作者: tireless     时间: 2008-12-25 23:18
前面补 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!
  )
)

作者: moniuming     时间: 2008-12-25 23:20

@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

作者: glbosom     时间: 2008-12-25 23:40
这个不知可以吗
@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 ]