sublime text 无法直接批量修改文件扩展名,因其仅为代码编辑器,不具文件管理功能;所有所谓“批量改后缀”方案均依赖调用系统命令(如windows的ren、powershell或linux/macos的mv)或外部脚本,sublime仅辅助生成或触发操作。

Sublime Text 本身不支持批量修改文件扩展名——它是个编辑器,不是文件管理器。所有所谓“Sublime 批量改后缀”的方案,本质都是调用系统命令(Windows 的 ren 或 PowerShell,macOS/Linux 的 mv)或借助外部脚本,Sublime 只负责生成或触发这些操作。
为什么不能直接在 Sublime 里改文件后缀
Sublime 的 File → Rename... 只作用于当前打开的单个文件,且不会自动更新磁盘上的文件名;它的侧边栏(Sidebar)也不提供多选重命名功能。试图用正则替换文件内容来“模拟”改后缀,只会污染源码,完全无效。
Windows 下用批处理 + Sublime 快速生成 rename 命令
适合已知目标目录、扩展名变化规则固定(如 .txt → .log)的场景。Sublime 可用来快速拼出一串 ren 命令:
- 在资源管理器中全选目标文件 → 右键「复制路径」→ 粘贴到 Sublime 新建窗口
- 用列选择(
Ctrl+鼠标拖拽)或正则替换(Find → Replace → .*\(.*)..* → ren "$1.xxx" "$1.yyy")批量构造命令 - 把结果复制进
.bat文件,注意路径含空格时要用英文双引号包裹原名和新名 - 实际执行前务必先在小范围测试,
ren不支持跨卷移动,失败时不报详细错误
更可靠的做法:用 PowerShell 替代批处理
PowerShell 对路径、通配符、错误处理更健壮,Sublime 可作为轻量脚本编辑器使用:
- 在 Sublime 中新建文件,保存为
rename.ps1 - 写入类似:
Get-ChildItem "C:mydir" -Filter "*.old" | Rename-Item -NewName { $_.Name -replace '.old$', '.new' } - 右键该文件 → 「使用 PowerShell 运行」,或在终端中执行
powershell -ExecutionPolicy Bypass -File . ename.ps1 - 注意默认策略禁止运行本地脚本,
-ExecutionPolicy Bypass是临时绕过,非长期方案
别忽略权限和原子性问题
批量改后缀看似简单,但容易踩坑:目标扩展名已被占用时会静默失败;文件被其他程序占用会导致重命名中断;没有备份就操作原始目录风险极高。真正稳妥的方式是先用 Sublime 配合 tree /f 或 ls -la 检查结构,再用带 -WhatIf 参数的 PowerShell 命令预览效果,最后才执行。手动删旧文件、拷贝新文件这种“笨办法”,反而比强行追求一键更可控。










