本帖最后由 smss 于 2025-3-3 22:52 编辑
- @echo off&setlocal enabledelayedexpansion
- rem 设置源目录、目标目录和关键词(按实际情况设置)
- set "source=D:\学校"
- set "target=D:\结果"
- set "keyword=关键词"
-
- if exist "%target%" rd/s/q "%target%" >nul
- rem 遍历每个班级目录(二级目录)
- for /d %%a in ("%source%\*")do (set "class=%%~nxa"
- if not exist "%target%\!class!\" md "%target%\!class!"
- rem 查找班级目录下所有包含关键词的子目录
- for /f "delims=" %%b in ('dir /s/b/ad "%%a\*" ^|findstr /i /r "\\%keyword%$"')do (pushd "%%b"
- rem 递归遍历子目录中的文件
- for /r %%c in (*)do (set "dest=%target%\!class!\%%~nxc"
- if exist "!dest!" set n=1&set "nc=%%~nc"&set "xc=%%~xc"&call :check
- echo 复制 [%%c] 到 [!dest!]
- copy "%%c" "!dest!" >nul
- )
- popd
- )
- )
- endlocal
-
- echo 文件复制完成!
- echo 按任意键退出!
- pause >nul&exit/b
- :check
- :: 如果有同名文件 则以原名(1)递增数字命名
- set "dest=%target%\!class!\!nc!(!n!)!xc!"
- if exist "!dest!" set/a n+=1&goto check
- exit/b
复制代码
|