@echo off
title 批量移动
setlocal enabledelayedexpansion
:home
rem 计数器,从0开始计数
set t=0
rem 设置被搜索的目录
set d=d:\123
rem 设置被搜索的字符串
set a=(r s)
rem 设置保存目录
set save=d:\abc
:start
rem 查找并建立保存目录
for %%g in %a% do (
if not exist "%save%\%%g" md "%save%\%%g"
)
rem 查找被搜索的目录是否存在
if exist %d% (
goto 1
) else (
echo.
echo 目录%d%不存在,按任意键退出&pause>nul
exit
)
rem 搜索根目录,不需要可以删除这一段
:1
for %%i in %a% do (
for %%j in ("%d%\*%%i*.*") do (
set /a t+=1&echo 正在处理第!t!个文件,请稍后...
move /y "%%j" "%save%\%%i\"
)
)
rem 搜索子目录,不需要可以删除这一段
:2
for %%i in %a% do (
for /f "tokens=* usebackq" %%k in (`dir "%d%\" /ad /b /s`) do (
set "CWD=%%~k"
set "TGD=!CWD:%d%\=%save%!"
for %%l in ("!CWD!""\*%%i*.*") do (
set /a t+=1&echo 正在处理第!t!个文件,请稍后...
move /y "%%l" "%save%\%%i\"
)
)
)
cls
echo.
echo 处理完成,共!t!个文件,按任意键退出 &pause>nul
exit