批处理 搜索所有同名文件夹并把其中的文件移动到另一个文件夹下
已解决:@echooffcd/d"%~dp0"set"newfolder=汇总"md"%newfolder%"2>nulfor/f"delims="%%ain('dir/...
已解决:
@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
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 展开
1个回答
展开全部
@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循环将当前目录下的指定的文件类型复制到指定路径,如果发现有重名的文件,就将第一个重名的文件重名令,然后再复制新的文件。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询