我的知识记录

如何批量修改文件后缀格式(图文)

批量修改文件后缀格式有多种方法,以下是不同操作系统下的详细操作指南:

Windows 系统

方法一:使用 PowerShell(推荐)


 
powershell
# 将当前目录下所有 .txt 文件改为 .log 文件 Get-ChildItem "*.txt" | Rename-Item -NewName { [io.path]::ChangeExtension($_.Name, "log") } # 修改指定目录中的特定文件 Get-ChildItem "C:\MyFolder\*.doc" | Rename-Item -NewName { [io.path]::ChangeExtension($_.Name, "pdf") } # 批量修改多个不同类型的文件 Get-ChildItem "*.jpeg" | Rename-Item -NewName { [io.path]::ChangeExtension($_.Name, "jpg") } Get-ChildItem "*.mpeg" | Rename-Item -NewName { [io.path]::ChangeExtension($_.Name, "mpg") }

方法二:使用 CMD 批处理


 
cmd
# 将所有 .txt 文件改为 .log 文件 ren *.txt *.log # 将所有 .doc 文件改为 .pdf 文件 ren *.doc *.pdf # 使用 for 循环进行更精确控制 for %i in (*.jpg) do ren "%i" "%~ni.jpeg"

方法三:保存为 .bat 批处理文件


 
batch
@echo off echo 开始批量修改文件后缀格式... cd /d "C:\YourFolderPath" echo 正在将 .jpeg 文件改为 .jpg 格式... ren *.jpeg *.jpg echo 正在将 .mpeg 文件改为 .mpg 格式... ren *.mpeg *.mpg echo 批量修改完成! pause

macOS 系统

使用 Terminal 终端


 
bash
# 将所有 .jpeg 文件改为 .jpg 格式 for file in *.jpeg; do mv "$file" "${file%.jpeg}.jpg" done # 批量处理多种格式 for file in *.JPEG; do mv "$file" "${file%.JPEG}.jpg" done for file in *.MPEG; do mv "$file" "${file%.MPEG}.mpg" done

Linux 系统

使用 Bash 命令


 
bash
# 方法一:使用 rename 命令(Perl 版本) rename 's/\.jpeg$/.jpg/' *.jpeg rename 's/\.JPEG$/.jpg/' *.JPEG # 方法二:使用 bash 循环 for file in *.jpeg; do mv "$file" "${file%.jpeg}.jpg" done # 方法三:使用 find 命令处理子目录 find . -name "*.JPEG" -exec sh -c 'mv "$1" "${1%.JPEG}.jpg"' _ {} \;

编程方式实现

Python 脚本


 
python
import os import glob from pathlib import Path def batch_change_extensions(directory, extension_mapping): """ 批量修改文件后缀格式 :param directory: 目标目录 :param extension_mapping: 后缀映射字典,如 {'jpeg': 'jpg', 'mpeg': 'mpg'} """ directory = Path(directory) total_changed = 0 for old_ext, new_ext in extension_mapping.items(): # 确保扩展名格式正确 old_ext = old_ext if old_ext.startswith('.') else '.' + old_ext new_ext = new_ext if new_ext.startswith('.') else '.' + new_ext # 查找匹配的文件 pattern = f"*{old_ext}" files = list(directory.glob(pattern)) print(f"找到 {len(files)} 个 {old_ext} 文件,准备转换为 {new_ext}") # 执行重命名 for old_file in files: try: new_file = old_file.with_suffix(new_ext) old_file.rename(new_file) print(f" ✓ {old_file.name} -> {new_file.name}") total_changed += 1 except Exception as e: print(f" ✗ 重命名失败 {old_file.name}: {e}") print(f"\n总共修改了 {total_changed} 个文件") # 使用示例 extension_map = { 'jpeg': 'jpg', 'JPEG': 'jpg', 'mpeg': 'mpg', 'MPEG': 'mpg', 'tif': 'tiff' } batch_change_extensions("./my_photos", extension_map)

更完整的 Python 脚本


 
python
import os import argparse from pathlib import Path class BatchExtensionChanger: def __init__(self, directory, recursive=False): self.directory = Path(directory) self.recursive = recursive self.changed_count = 0 def change_extension(self, old_ext, new_ext): """修改单一扩展名""" # 确保扩展名格式 old_ext = old_ext if old_ext.startswith('.') else '.' + old_ext new_ext = new_ext if new_ext.startswith('.') else '.' + new_ext # 构建搜索模式 if self.recursive: pattern = f"**/*{old_ext}" files = list(self.directory.glob(pattern)) else: pattern = f"*{old_ext}" files = list(self.directory.glob(pattern)) print(f"找到 {len(files)} 个 {old_ext} 文件") for file in files: try: new_file = file.with_suffix(new_ext) file.rename(new_file) print(f" {file.relative_to(self.directory)} -> {new_file.relative_to(self.directory)}") self.changed_count += 1 except Exception as e: print(f" 错误: 无法重命名 {file.name}: {e}") def batch_change(self, mappings): """批量修改多个扩展名""" for old_ext, new_ext in mappings.items(): print(f"\n正在将 {old_ext} 转换为 {new_ext}:") self.change_extension(old_ext, new_ext) print(f"\n完成!总共修改了 {self.changed_count} 个文件") # 使用示例 if __name__ == "__main__": changer = BatchExtensionChanger("./documents", recursive=True) # 定义扩展名映射 extensions_map = { 'jpeg': 'jpg', 'JPEG': 'jpg', 'mpeg': 'mpg', 'tif': 'tiff', 'htm': 'html' } changer.batch_change(extensions_map)

第三方工具推荐

Windows 工具

  1. Bulk Rename Utility - 功能强大的批量重命名工具
    • 支持正则表达式
    • 可预览修改结果
    • 支持撤销操作
  2. Advanced Renamer - 专业的批量重命名软件
    • 图形化界面
    • 支持多种重命名规则
    • 可处理复杂命名需求
  3. ReNamer - 轻量级但功能全面的工具
    • 免费使用
    • 支持插件扩展

跨平台工具

  1. Ant Renamer - 免费开源的批量重命名工具
  2. File Renamer - 简单易用的跨平台工具

实际应用示例

示例1:统一图片格式后缀


 
powershell
# Windows PowerShell Get-ChildItem "*.JPEG" | Rename-Item -NewName { ($_.BaseName + ".jpg") } Get-ChildItem "*.JPG" | Rename-Item -NewName { ($_.BaseName + ".jpg") } Get-ChildItem "*.PNG" | Rename-Item -NewName { ($_.BaseName + ".png") }

示例2:视频格式标准化


 
bash
# Linux/macOS for file in *.MP4; do mv "$file" "${file%.MP4}.mp4"; done for file in *.AVI; do mv "$file" "${file%.AVI}.avi"; done for file in *.MOV; do mv "$file" "${file%.MOV}.mov"; done

示例3:文档格式整理


 
cmd
# Windows CMD ren *.DOC *.doc ren *.DOCX *.docx ren *.PDF *.pdf

注意事项

  1. 备份重要文件:批量操作前务必备份重要数据
  2. 权限检查:确保对目标目录有写入权限
  3. 测试运行:先在少量文件上测试脚本效果
  4. 大小写敏感
    • Linux/macOS 区分大小写
    • Windows 不区分大小写
  5. 确认操作:添加确认步骤避免误操作
  6. 特殊字符处理:注意处理包含空格或特殊字符的文件名
  7. 程序关联:修改扩展名后可能需要重新关联默认程序
通过以上方法,你可以高效地批量修改文件后缀格式,选择最适合你操作系统和需求的方法即可。
 

如何批量修改文件后缀格式(图文)

标签:

更新时间:2025-12-17 12:47:59

上一篇:如何显示文件后缀名格式如何显示文件后缀名格式(图文)

下一篇:修改文件后缀格式需要注意的事项(图文)