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

如何让批处理脚本复制数组路径下所有子文件夹的TXT文件

批处理脚本修改:递归复制所有子目录的TXT文件并按字母排序

原脚本仅能复制指定主目录下的.txt文件,无法遍历子文件夹及更深层级目录。以下是修改后的脚本,可实现递归收集所有指定目录及其子目录的.txt文件,复制到目标目录且不保留原目录结构,同时按文件名字母顺序完成复制:

@echo off
setlocal enabledelayedexpansion

:: 定义源目录数组
set Arr[0]=M:\0_Backup_Keep
set Arr[1]=M:\0_Delete
set Arr[2]=M:\0_Reserved

:: 定义目标目录
set "dest=M:\Test_txt"
:: 创建临时文件用于存储排序后的文件路径
set "tempFile=%temp%\txtFilesList.tmp"

:: 确保目标目录存在
if not exist "%dest%" mkdir "%dest%"

:: 遍历所有源目录,收集所有.txt文件路径到临时文件
for /l %%n in (0,1,2) do (
    echo 正在扫描目录: !Arr[%%n]!
    for /r "!Arr[%%n]!" %%f in (*.txt) do (
        echo "%%f" >> "%tempFile%"
    )
)

:: 对临时文件中的文件路径按文件名排序,然后逐个复制到目标目录
echo.
echo 开始按字母顺序复制文件...
for /f "usebackq delims=" %%f in (`sort "%tempFile%"`) do (
    copy "%%~f" "%dest%" >nul
)

:: 清理临时文件
del "%tempFile%" >nul 2>&1

echo.
echo 所有.txt文件已完成复制!
echo. & echo ^>Press ANY key to EXIT . . . & pause >nul & Exit

关键修改说明:

  • 使用for /r递归遍历每个源目录下的所有子目录,匹配所有.txt文件
  • 通过临时文件存储所有文件路径,利用sort命令实现按文件名字母排序
  • 增加if not exist "%dest%" mkdir "%dest%"确保目标目录存在,避免复制失败
  • 复制时使用>nul屏蔽复制过程的输出,让脚本运行更简洁

效果验证:

按示例场景,目标目录M:\Test_txt最终会包含:ABC_1.txt、ABC_2.txt、ABC_3.txt、TF_1.txt、TF_2.txt、TF_3.txt,且按字母顺序排列。

内容的提问来源于stack exchange,提问作者Paul Black

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 12:47:26