批处理 搜索所有同名文件夹并把其中的文件移动到另一个文件夹下

已解决:
@echo off
cd /d "%~dp0"
set "newfolder=汇总"
md "%newfolder%" 2>nul
for /f "delims=" %%a in ('dir /ad/b^|findstr /v "^%newfolder%$"') do set "fd=%%a"
for /f "delims=" %%a in ('dir /ad/b "%fd%"') do (
for /f "delims=" %%b in ('dir /ad/b^|findstr /v "^%newfolder%$"') do (
if exist "%%b\%%a\" (
echo;"%%b\%%a" --^> "%newfolder%\%%a\"
xcopy "%%b\%%a" "%newfolder%\%%a\" /q /s
)
)
)
pause

@echo off::请将不同的文件夹与此批处理放在同一个目录下 set /p var=请输入要复制的文件类型(输入格式:*.txt;*.pdf): set /p path=请输入要复制到的目标文件夹路径: ::使用for循环查询当前所有子文件中的%var%类型文件,并复制到指定路径下。 for /f "delims=" %%a in ('dir /a-d /b /s %var%') do ( if not defined %%~nxa ( xcopy "%%a" "%path%"&set "%%~nxa=a" ) else ( set /a n+=1 ren "%path%\%%~nxa" "%%~na!n!%%~xa"&xcopy "%%a" "%path%" ))pause注意:上面的批处理首先与用户进行交互,让用户设置要复制的文件类型以及要复制到目的路径。接着使用for循环将当前目录下的指定的文件类型复制到指定路径,如果发现有重名的文件,就将第一个重名的文件重名令,然后再复制新的文件。
温馨提示:答案为网友推荐,仅供参考