notepad--批量重命名正则表达式示例:常用模式
一、功能概述
notepad--提供批量文件重命名功能,支持通过前缀/后缀添加删除、大小写转换等方式批量处理文件名。当前版本(基于源码分析)暂未实现正则表达式(Regular Expression)直接支持,但可通过字符串匹配模式实现类似效果。以下是基于现有功能的常用重命名模式及替代实现方案。
二、批量重命名基础操作
2.1 功能入口
通过菜单栏「工具」→「批量重命名」打开操作窗口,支持两种模式:
- 文件名称修改(添加/删除前缀后缀、大小写转换)
- 文件扩展名修改(批量更改文件类型)
2.2 核心参数设置
| 参数项 | 功能说明 |
|---|---|
| 目标目录 | 选择需批量处理的文件夹 |
| 包含子目录 | 勾选后递归处理所有子文件夹文件 |
| 操作类型 | 单选按钮切换不同重命名模式 |
| 进度窗口 | 显示处理进度及失败文件信息 |
三、常用重命名模式及实现
3.1 前缀添加模式
场景:为所有日志文件添加日期前缀
操作:
- 选择「添加前缀」单选按钮
- 输入框填写前缀文本(如
202309_) - 选择目标目录并勾选文件类型过滤
代码逻辑示例:
// 核心实现原理(源自renamewin.cpp)
QString getNewName(QString oldName, int type, const QString& addOrDelFix) {
QFileInfo fi(oldName);
// 类型0为添加前缀
return QString("%1/%2.%3").arg(dir.absolutePath())
.arg(addOrDelFix + fi.baseName()) // 前缀+原文件名
.arg(fi.suffix()); // 保留原扩展名
}
效果:
error.log → 202309_error.log
access.log → 202309_access.log
3.2 后缀删除模式
场景:移除文件名中的临时标记(如_tmp)
操作:
- 选择「删除后缀」单选按钮
- 输入框填写待删除后缀文本(如
_tmp)
实现逻辑:
// 当baseName以指定字符串结尾时截取
if (fi.baseName().endsWith(addOrDelFix)) {
return QString("%1/%2.%3").arg(dir.absolutePath())
.arg(fi.baseName().mid(0, fi.baseName().length() - addOrDelFix.length()))
.arg(fi.suffix());
}
效果:
report_tmp.pdf → report.pdf
data_tmp.csv → data.csv
3.3 大小写转换
场景:统一配置文件名为小写
操作:
- 选择「转为小写」单选按钮
- 直接执行无需额外参数
实现逻辑:
// 类型4为转为小写
case 4:
return QString("%1/%2.%3").arg(dir.absolutePath())
.arg(fi.baseName().toLower()) // 文件名转小写
.arg(fi.suffix().toLower()); // 扩展名转小写
效果:
CONFIG.INI → config.ini
README.MD → readme.md
3.4 扩展名批量修改
场景:将txt文件转为md格式
操作:
- 切换到「扩展名修改」标签页
- 源扩展名选择
.txt - 目标扩展名输入
md
实现逻辑:
// 替换文件扩展名
QString getNewName(QString oldName, const QString& destExt) {
QFileInfo fi(oldName);
int oldExtSize = fi.suffix().length();
return QString("%1%2").arg(oldName.mid(0, oldName.size()-oldExtSize))
.arg(destExt);
}
效果:
note1.txt → note1.md
draft2.txt → draft2.md
四、高级应用技巧
4.1 组合操作流程
效果:
Doc/Report.docx → Doc/2023_report.docx
4.2 错误处理机制
| 错误类型 | 可能原因 | 解决方案 |
|---|---|---|
| 重命名失败 | 文件被占用 | 关闭占用程序后重试 |
| 无权限操作 | 系统保护目录 | 复制文件到其他目录处理 |
| 名称冲突 | 生成重复文件名 | 添加序号后缀(如_01) |
五、使用注意事项
- 操作前建议备份文件,避免不可逆修改
- 处理大量文件时,可通过「进度窗口」查看实时状态
- 对于特殊字符(如空格、中文),程序已做兼容处理
- 目前版本暂不支持正则表达式高级匹配,复杂规则需分多步实现
六、未来功能展望
根据源码规划(renamewin.h中预留接口),后续版本可能支持:
- 正则表达式替换模式
- 文件名批量编号功能
- 自定义规则保存与导入
- 预览功能(修改前显示预期结果)
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



