Board logo

标题: 正则表达式批量替换文件名称 [打印本页]

作者: freesoft00    时间: 2018-8-17 13:17     标题: 正则表达式批量替换文件名称

本帖最后由 freesoft00 于 2018-8-17 13:18 编辑

CAD系统课1讲:如何安装和注册14版CAD软件?初学者只要看了就会.mp4
CAD系统课2讲:初次见面“先要认识下界面”,初学者一定要先了解.mp4
CAD系统课3讲:第一次打开软件不要急于画图,要先做绘图设置!.mp4
CAD系统课4讲:用公制的图形文件画图,能减少一些不必要的操作!.mp4
CAD系统课5讲:初学者入门学会这些知识和操作,可提高画图速度!.mp4
CAD系统课6讲:如何理解坐标系,绝对坐标和相对坐标?全是干货!.mp4
CAD系统课7讲:初学者入门必须真正理解绘制图形的基本操作!干货.mp4
CAD系统课8讲:如何绘制直线?很少人使用第2种绘制斜线的方法!.mp4
CAD系统课9讲:什么是点选,框选,减选及如何操作?满满的干货!.mp4

文件类似上面的形式。
批量重命名,把1、2、3数字更改为类似01、02、03这样的。
有批量重命名软件,好像这种中间有数字的只能用正则表达式替换吧?也许是自己不会使用这些批量重名软件。
如果用正则,这个正则替换规则如何写

^CAD系统课([1-9]) 替换为    替换为什么不会写


测试把文件名称复制到txt文本文件中。

网友holley2008 给出了^CAD系统课([1-9])替换为CAD系统课0\1的正则替换。
但是我测试,只有notepad++支持这种正则。
而everedit不支持。
使用Total Commander 的批量重命名 替换正则也不支持

不知道后两者支持的正则是什么,为什么notepad++支持,其它不支持,网上的正则在线测试网址,我测试了也无法实现这种替换。
作者: Batcher    时间: 2018-8-17 14:10

Total Commander 里面需要这样写:
CAD系统课0$1

参考文档:
https://www.ghisler.ch/wiki/index.php/Regular_Expressions#Subexpressions_for_search.2Breplace
作者: freesoft00    时间: 2018-8-17 15:17

CAD系统课1讲:如何安装和注册14版CAD软件?初学者只要看了就会.mp4
CAD系统课2讲:初次见面“先要认识下界面”,初学者一定要先了解.mp4
CAD系统课3讲:第一次打开软件不要急于画图,要先做绘图设置!.mp4
CAD系统课4讲:用公制的图形文件画图,能减少一些不必要的操作!.mp4
CAD系统课5讲:初学者入门学会这些知识和操作,可提高画图速度!.mp4
CAD系统课6讲:如何理解坐标系,绝对坐标和相对坐标?全是干货!.mp4
CAD系统课7讲:初学者入门必须真正理解绘制图形的基本操作!干货.mp4
CAD系统课8讲:如何绘制直线?很少人使用第2种绘制斜线的方法!.mp4
CAD系统课9讲:什么是点选,框选,减选及如何操作?满满的干货!.mp4
CAD系统课10讲:如何绘制直线?很少人使用第2种绘制斜线的方法!.mp4
CAD系统课11讲:什么是点选,框选,减选及如何操作?满满的干货!.mp4
CAD系统课110讲:什么是点选,框选,减选及如何操作?满满的干货!.mp4

如果是这样的。数字中也带有2位或者3位的数字,只替换单数字的签名添加上0

或者单数字的添加两个0,双数字的添加一个0,三数字的不更改

这样的两种情况 搜索 和替换 的 正则关键此怎么写?
作者: freesoft00    时间: 2018-8-17 15:18

回复 2# Batcher


    确实可以了。多谢!
作者: Batcher    时间: 2018-8-17 16:03

回复 3# freesoft00


第一次替换:
^CAD系统课([1-9])讲
CAD系统课00$1讲

第二次替换:
^CAD系统课([1-9][0-9])讲
CAD系统课0$1讲
作者: PCL2012    时间: 2018-8-17 20:24

楼上的头像牛啊~~
作者: holley    时间: 2018-8-19 21:16

回复 1# freesoft00



    http://www.bathome.net/thread-48945-1-1.html
已自己折腾出结果了。
作者: xczxczxcz    时间: 2018-8-19 22:19

回复 7# holley

好久未来了,给你来个更爽的。~~
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. (for /f "tokens=1* delims=:" %%a in ('type %1') do (
  4.   set "str=%%a"
  5.   echo !str:~6,-1!|findstr "^[1-9]$">nul 2>nul&&echo !str:~0,6!00!str:~6,-1!!str:~-1!:%%b
  6.   echo !str:~6,-1!|findstr "^[1-9][0-9]$">nul 2>nul&&echo !str:~0,6!0!str:~6,-1!!str:~-1!:%%b
  7.   echo !str:~6,-1!|findstr "^[1-9][0-9][0-9]$">nul 2>nul&&echo !str:~0,6!!str:~6,-1!!str:~-1!:%%b
  8.   ))>new.txt
  9. pause
复制代码
数字保留3位数。把文本拖上来
==============




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