You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Batch脚本递归批量修改文件夹内所有文件的扩展名?

递归批量修改扩展名+U盘文件备份的Batch解决方案

嘿,完全不用挨个目录写ren命令这么麻烦!Batch里的for /r命令就是专门用来递归遍历目录的,配合文件复制命令,轻松搞定你的需求。下面给你完整的实现步骤和脚本:

1. 完整Batch脚本代码

@echo off
setlocal enabledelayedexpansion

:: 定义U盘盘符(请根据你的实际情况修改,比如D:、E:)
set "U盘盘符=D:"
:: 定义桌面备份目录
set "备份目录=%USERPROFILE%\Desktop\U盘备份"

:: 创建备份目录(如果不存在的话)
if not exist "%备份目录%" (
    mkdir "%备份目录%"
    echo 已创建备份目录:%备份目录%
)

:: 递归复制U盘内所有文件到备份目录
echo 开始复制U盘文件到桌面...
xcopy "%U盘盘符%\*" "%备份目录%\" /E /H /C /Y
echo 文件复制完成!

:: 递归将备份目录下所有.bat文件改为.txt
echo 开始批量修改.bat文件扩展名...
for /r "%备份目录%" %%f in (*.bat) do (
    ren "%%f" "%%~nf.txt"
    echo 已修改:"%%f" → "%%~dpnf.txt"
)
echo 扩展名修改完成!

pause

2. 关键命令解释

  • xcopy参数说明:

    • /E:递归复制所有子目录,包括空目录
    • /H:复制隐藏文件和系统文件(避免漏掉U盘里的隐藏内容)
    • /C:遇到错误时继续复制,不会中途停止
    • /Y:覆盖已存在的文件时不提示
  • for /r递归遍历:

    • /r "%备份目录%":从指定的备份目录开始,递归遍历所有子目录
    • %%f:代表遍历到的每个.bat文件的完整路径
    • %%~nf:提取文件的文件名(不含扩展名),这样就能把xxx.bat精准改成xxx.txt

3. 使用注意事项

  • 记得把脚本里的U盘盘符改成你实际的U盘盘符(可以通过“此电脑”查看)
  • 如果不需要显示每一个文件的修改过程,把echo 已修改:...这一行删掉就行
  • 如果U盘里有大量文件,复制过程可能需要一点时间,耐心等待就好

内容的提问来源于stack exchange,提问作者Fierce Thunder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:17:49