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

如何用批处理文件将NOMEDIA文件递归复制到所有EXTRAS文件夹及其子目录

正确实现将NOMEDIA文件复制到所有EXTRAS文件夹及其子目录的批处理方案

我来帮你解决这个批处理的精准复制问题——你需要把NOMEDIA文件只放到所有名为EXTRAS的文件夹及其所有子文件夹里,之前的脚本要么没递归处理子文件夹、要么误创建无关文件、要么范围太广乱复制,这就给你一个可靠的解决方案:

@echo off
setlocal enabledelayedexpansion

:: 请替换成你实际的NOMEDIA文件路径,有空格的话引号要保留
set "nomedia_source=C:\你的路径\.nomedia"

:: 第一步:递归查找所有名为EXTRAS的文件夹
for /d /r %%d in (EXTRAS) do (
    :: 把NOMEDIA复制到当前找到的EXTRAS文件夹本身
    copy /y "%nomedia_source%" "%%d\" >nul
    
    :: 第二步:递归遍历当前EXTRAS文件夹下的所有子文件夹,逐一复制
    for /d /r "%%d" %%s in (*) do (
        copy /y "%nomedia_source%" "%%s\" >nul
    )
)

echo NOMEDIA文件已完成指定目录的复制!
endlocal

脚本细节解释

  • @echo off:关闭命令行的默认命令输出,让运行过程更整洁
  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环内的路径变量能正确解析
  • for /d /r %%d in (EXTRAS):/d限定只查找文件夹,/r递归遍历所有子目录,精准定位所有名为EXTRAS的文件夹
  • 第一层copy:将NOMEDIA复制到EXTRAS文件夹本身,/y自动覆盖已存在的同名文件,>nul隐藏复制操作的冗余输出
  • 第二层嵌套for:以找到的EXTRAS文件夹为起点,递归遍历它的所有子文件夹,完成深层目录的复制

之前脚本出错的常见原因

  • 仅复制到EXTRAS本身,未处理子文件夹:缺少嵌套的递归遍历逻辑,只处理了第一层EXTRAS文件夹
  • 误创建名为“Extras”的文件:大概率是复制命令里没加路径末尾的反斜杠(\),导致系统把文件夹路径当成了文件名来创建
  • 复制到所有目录:没有限定只查找EXTRAS文件夹,而是直接递归遍历了所有目录,范围失控

注意事项

  • 请务必替换nomedia_source为你实际的NOMEDIA文件路径,路径有空格时必须保留引号
  • Windows默认不区分文件夹大小写,所以EXTRAS和extras都会被匹配到;如果需要严格区分大小写,可以额外添加判断逻辑
  • 建议先在测试目录里运行脚本,确认效果符合预期后,再在目标目录执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:37:31