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 ]