脚本怎样批量修改文件名后缀

wen 实用脚本 28

本文目录导读:

脚本怎样批量修改文件名后缀

  1. Windows系统
  2. macOS/Linux系统
  3. Python脚本(跨平台)
  4. Excel/VBA脚本
  5. 在线工具
  6. 注意事项

Windows系统

命令提示符

# 将当前文件夹下所有.txt改为.doc
ren *.txt *.doc
# 更复杂的批量修改(需要PowerShell)
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$','.doc' }

批处理脚本

@echo off
setlocal enabledelayedexpansion
set "old_ext=.txt"
set "new_ext=.doc"
for %%f in (*%old_ext%) do (
    set "filename=%%~nf"
    ren "%%f" "!filename!%new_ext%"
)
echo 修改完成!
pause

macOS/Linux系统

命令行

# 将当前目录所有.txt改为.doc
for file in *.txt; do
    mv "$file" "${file%.txt}.doc"
done
# 更简洁的写法
rename 's/\.txt$/\.doc/' *.txt

递归处理子目录

# 包含子目录
find . -type f -name "*.txt" -exec sh -c 'mv "$0" "${0%.txt}.doc"' {} \;

Python脚本(跨平台)

import os
import glob
def batch_rename(old_ext, new_ext, path='.'):
    """
    批量修改文件后缀名
    :param old_ext: 原后缀名,如 '.txt'
    :param new_ext: 新后缀名,如 '.doc'
    :param path: 文件路径,默认为当前目录
    """
    # 构建匹配模式
    pattern = os.path.join(path, f'*{old_ext}')
    # 查找所有匹配文件
    files = glob.glob(pattern)
    for file_path in files:
        # 分离文件名和扩展名
        dir_name = os.path.dirname(file_path)
        file_name = os.path.basename(file_path)
        name_without_ext = os.path.splitext(file_name)[0]
        # 构建新文件名
        new_file_name = name_without_ext + new_ext
        new_file_path = os.path.join(dir_name, new_file_name)
        try:
            os.rename(file_path, new_file_path)
            print(f'已重命名: {file_name} -> {new_file_name}')
        except Exception as e:
            print(f'重命名失败 {file_name}: {e}')
# 使用示例
if __name__ == '__main__':
    batch_rename('.txt', '.doc')
    # 或指定路径
    # batch_rename('.jpg', '.png', '/path/to/images')

Excel/VBA脚本

Sub BatchRenameExtension()
    Dim oldExt As String, newExt As String
    Dim fileName As String, newName As String
    Dim fso As Object, folder As Object, file As Object
    ' 设置原后缀和新后缀
    oldExt = ".txt"
    newExt = ".doc"
    ' 创建文件系统对象
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\Your\Path\Here")
    ' 遍历文件
    For Each file In folder.Files
        If fso.GetExtensionName(file.Name) = Mid(oldExt, 2) Then
            fileName = fso.GetBaseName(file.Name)
            newName = fileName & newExt
            ' 重命名文件
            Name file.Path As fso.BuildPath(folder.Path, newName)
            Debug.Print "已重命名: " & file.Name & " -> " & newName
        End If
    Next file
    MsgBox "批量修改完成!"
End Sub

在线工具

  • 批量文件重命名工具:如 Bulk Rename Utility (Windows)
  • 在线转换工具:如 Online-Convert.com

注意事项

  1. 备份重要文件:批量操作前建议先备份
  2. 检查目标路径:确保有读写权限
  3. 避免覆盖:注意新文件名不要与现有文件冲突
  4. 测试运行:建议先用少量文件测试

选择最适合你需求的方法即可,Python脚本适合需要跨平台或复杂条件处理的场景,命令行方法效率最高,Windows批处理适合简单的批量操作。

抱歉,评论功能暂时关闭!