如何在 windows 中批量修改文件后缀名 使用 cmd 脚本一键完成更名教程

如果您需要在 Windows 系统中快速将大量文件统一更改为指定后缀名,而手动逐个重命名效率低下且易出错,则可通过 CMD 命令行脚本实现批量修改。以下是具体操作步骤:

一、使用 ren 命令配合通配符批量修改

该方法适用于同一目录下所有目标文件具有相同原始后缀,且需统一更改为另一后缀的场景。ren 命令原生支持通配符,无需额外工具,执行速度快,但要求新旧后缀长度一致或使用带引号的完整匹配方式以规避截断风险。

1、按 Win + R 打开运行窗口,输入 cmd 并回车,启动命令提示符。

2、使用 cd 命令切换至目标文件所在目录,例如:cd /d D:\Documents\Photos。

3、执行批量重命名命令,例如将所有 .txt 文件改为 .log:ren “*.txt” “*.log”。

4、若原始后缀与目标后缀长度不同(如 .jpg → .jpeg),需先用 for 循环配合 rename 逐个处理,避免 ren 的通配符截断限制。

二、使用 for 循环配合 rename 实现任意后缀转换

该方法突破 ren 命令对后缀长度的限制,通过遍历每个文件并调用 rename 命令完成精确替换,支持原始后缀与目标后缀长度不一致的情形,且可添加条件过滤,安全性更高。

1、在目标文件夹空白处按住 Shift + 右键,选择“在此处打开 PowerShell 窗口”或“在此处打开命令窗口”。

2、输入以下命令(以 .png → .webp 为例):for %f in (*.png) do @rename “%f” “%~nf.webp”。

3、若需在批处理文件(.bat)中运行,须将单个百分号改为双百分号:for %%f in (*.png) do @rename “%%f” “%%~nf.webp”。

4、执行前建议先用 dir *.png 确认待处理文件列表,防止误操作。

三、创建可复用的 .bat 批处理脚本

将常用重命名逻辑封装为批处理文件,便于重复调用和参数化控制。脚本可内置路径检查、文件存在性验证及错误提示,提升操作鲁棒性,适合非技术人员使用。

1、用记事本新建文本文件,在其中输入以下内容(以转换 .bak 为 .old 为例):@echo offsetlocal enabledelayedexpansionif not exist “*.bak” (echo 未找到.bak文件 & pause & exit /b)for %%f in (*.bak) do (set “name=%%~nf” & rename “%%f” “!name!.old”)echo 批量转换完成!& pause。

2、将文件另存为 rename_bak_to_old.bat,编码选择 ANSI 或 UTF-8 无 BOM。

3、双击运行该 .bat 文件,脚本自动检测当前目录下 .bak 文件并逐一重命名为 .old。

4、如需修改目标类型,仅需替换脚本中两处 .bak 和 .old 即可适配其他后缀组合。

四、使用 PowerShell 替代方案增强容错能力

PowerShell 提供更严谨的对象化文件操作接口,支持 -WhatIf 预览模式、异常捕获及正则匹配,可有效避免因文件名含空格、特殊字符或权限不足导致的失败,适合复杂批量任务。

1、以管理员身份运行 PowerShell(右键开始菜单 → Windows PowerShell(管理员))。

2、切换目录后执行预览命令(不实际执行):Get-ChildItem “*.tmp” | ForEach-Object { Write-Host “将重命名:” $_.Name “→” ($_.BaseName + “.backup”) }。

3、确认无误后执行真实操作:Get-ChildItem “*.tmp” | Rename-Item -NewName { $_.BaseName + “.backup” }。

4、若需跳过只读文件,添加参数 -Force;若需递归子目录,添加 -Recurse。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。