找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23163|回复: 4

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

[复制链接]
发表于 2012-6-7 02:22:31 | 显示全部楼层 |阅读模式
本帖最后由 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处理实现此功能?  小弟在此先谢谢各位达人~~~

评分

参与人数 1PB +2 收起 理由
zqz0012005 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-6-7 07:34:09 | 显示全部楼层
  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
复制代码
做倒是做到了   感觉这么冗长。。。
发表于 2012-6-7 08:17:05 | 显示全部楼层
来个简单点的

@ECHO OFF
Setlocal enableDelayedExpansion
set a=00000
for /f %%i in (1.txt) do (
set b=!a!%%i&set "b=!b:~-5!
echo !b!
)
发表于 2012-6-7 08:51:04 | 显示全部楼层
  1. @ECHO OFF&Setlocal enableDelayedExpansion
  2. >2.txt (for /f %%i in (1.txt) do set b=00000%%i&echo,!b:~-5!)
复制代码
 楼主| 发表于 2012-6-7 11:29:01 | 显示全部楼层
真NB..两行代码就实现了.....太强悍了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 03:35 , Processed in 0.028601 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表