[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样实现每行不足N字符,用0填充?

本帖最后由 xcy1314 于 2012-6-7 11:30 编辑

十分感谢各位达人。


请问下 如何用批处理实现

比如1.txt内容如下
19B
583
96B
D53
113B
1523
190B
3463
1036B
10753
10B3B
10F23
判断1.txt每行是否够5个字符,如果不够字符 则在前面用0补充..
处理后2.txt
0019B
00583
0096B
00D53
0113B
01523
0190B
03463
1036B
10753
10B3B
10F23


请问该如何用p处理实现此功能?  小弟在此先谢谢各位达人~~~
1

评分人数

    • zqz0012005: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=* delims=" %%i in (test.txt) do call :strlen "%%i"
  3. pause & exit
  4. :strlen
  5. setlocal & set "n=%~1"
  6. for /l %%j in (0 1 4) do (
  7.     if "!n:~%%j,1!"=="" (
  8.         set /a n0=5-%%j
  9.         for /l %%x in (0 1 !n0!) do set "c0=0!c0!"
  10.         echo !c0!%%i
  11.         endlocal & goto :eof
  12. ))>>test_new.txt
  13. goto :eof
复制代码
做倒是做到了   感觉这么冗长。。。

TOP

来个简单点的

@ECHO OFF
Setlocal enableDelayedExpansion
set a=00000
for /f %%i in (1.txt) do (
set b=!a!%%i&set "b=!b:~-5!
echo !b!
)

TOP

  1. @ECHO OFF&Setlocal enableDelayedExpansion
  2. >2.txt (for /f %%i in (1.txt) do set b=00000%%i&echo,!b:~-5!)
复制代码

TOP

真NB..两行代码就实现了.....太强悍了

TOP

返回列表