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

[文件操作] 【已解决】批处理怎样给TXT批量补0,求教各位老师

谢谢各位老师,我用qixiaobin0715老师的方法完美解决了!
再次感谢


搜了论坛里批量补0的帖子,都不能满足要求,劳烦各位老师帮忙
如下图,有几十万TXT文档,要求将第几章之间的数字补0,即第1章改成第01章,第9章改成第09章,第10章等满两位的不变
且第几章之外的数字不要改动
拜谢

回复 1# zhuan1688


    截图里面有个第0章,改成第00章吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 qixiaobin0715 于 2020-12-22 21:04 编辑

注意备份文件。小批量试试
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /a-d^|findstr "\-第[0-9]章"') do (
  4. set "str=%%a"
  5. set "str=!str:-第=-第0!"
  6. ren "%%a" "!str!"
  7. )
  8. pause
复制代码

TOP

第0章不改的话可将代码中的[0-9]修改成[1-9]

TOP

本帖最后由 qixiaobin0715 于 2020-12-22 23:05 编辑

回复 1# zhuan1688
忘记"-"需要转义了,已修改。

TOP

本帖最后由 ivor 于 2020-12-23 20:10 编辑
  1. powershell "dir *.txt | Rename-Item -NewName { $_.Name -replace '(?<=第)(\d)(?=章)','0$1' }"
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 1# zhuan1688

其实3楼第3行代码想复杂了,有点画蛇添足的意味。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*第?章*.txt) do (
  4. set "str=%%a"
  5. set "str=!str:-第=-第0!"
  6. ren "%%a" "!str!"
  7. )
  8. pause
复制代码
1

评分人数

    • zhuan1688: 无比感激,完美解决。技术 + 1

TOP

返回列表