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

如何修改批处理脚本实现从指定目录所有子文件夹复制指定文件?

批处理脚本修改:递归搜索所有子文件夹并复制指定文件

需求与现有问题

  • 要从D:\move_script的所有子文件夹中,找出List.txt(每行一个文件名)里的500个图像文件,复制到本地目标文件夹。
  • 当前脚本问题:指定SourceFolder时提示文件未找到;指定单个子文件夹data时,仅在该文件夹内搜索,无法遍历所有子目录。

修改后的脚本

pushd D:\move_script
:: 自动创建目标文件夹(如果不存在)
mkdir ".\DestinationFolder\" 2>nul
:: 遍历List.txt中的每个文件名
for /f "tokens=* delims=" %%a in ('type List.txt') do (
    :: 递归搜索当前目录下所有子文件夹中匹配的文件
    for /r ".\" %%b in ("%%a") do (
        :: 复制找到的文件到目标文件夹
        xcopy /hrkvy "%%b" ".\DestinationFolder\"
    )
)
popd

关键修改说明

  • for /r ".\" %%b in ("%%a"):使用/r参数开启递归遍历,.代表当前目录(即D:\move_script),会自动搜索所有子文件夹中与%%a(List.txt中的文件名)匹配的文件。
  • 外层循环负责读取List.txt的每一行文件名,内层循环负责递归定位文件,找到后调用xcopy完成复制。
  • 保留原xcopy参数:/h包含隐藏/系统文件,/r覆盖只读文件,/k保留文件属性,/v验证复制完整性,/y跳过覆盖确认提示。

额外提示

  • 如果List.txt中的文件名包含空格或特殊字符,for /f的tokens=* delims=参数已确保能读取完整的文件名。
  • mkdir ".\DestinationFolder\" 2>nul会自动创建目标文件夹,2>nul用于屏蔽文件夹已存在的错误提示。

内容的提问来源于stack exchange,提问作者Gourab Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:27:15