Board logo

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

作者: zhuan1688    时间: 2020-12-22 15:59     标题: 【已解决】批处理怎样给TXT批量补0,求教各位老师

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


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

回复 1# zhuan1688


    截图里面有个第0章,改成第00章吗?
作者: qixiaobin0715    时间: 2020-12-22 16:51

本帖最后由 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
复制代码

作者: qixiaobin0715    时间: 2020-12-22 17:17

第0章不改的话可将代码中的[0-9]修改成[1-9]
作者: qixiaobin0715    时间: 2020-12-22 21:06

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

回复 1# zhuan1688
忘记"-"需要转义了,已修改。
作者: ivor    时间: 2020-12-22 21:36

本帖最后由 ivor 于 2020-12-23 20:10 编辑
  1. powershell "dir *.txt | Rename-Item -NewName { $_.Name -replace '(?<=第)(\d)(?=章)','0$1' }"
复制代码

作者: qixiaobin0715    时间: 2020-12-24 18:36

回复 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
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2