Вариант1
Код:
@Echo Off
Set In1=E:\Delete\KWTFCB
Set In2=E:\Delete\123
Set Out=E:\Delete\KWTFCB_123
SetLocal EnableExtensions
SetLocal EnableDelayedExpansion
FOR %%k IN ("%In1%\KWTFCB_*.txt") DO (
Set kFile=%%~nxk
Set kFile=!kFile:KWTFCB_=!
FOR /R "%In2%" %%f IN (!kFile!) DO If Exist "%%f" Move /Y "%%k" "%Out%\" && Move /Y "%%f" "%Out%\"
)
Вариант2
Код:
@Echo Off
Set In1=E:\Delete\KWTFCB
Set In2=E:\Delete\123
Set Out=E:\Delete\KWTFCB_123
SetLocal EnableExtensions
SetLocal EnableDelayedExpansion
FOR %%k IN ("%In1%\KWTFCB_*.txt") DO (
Set kFile=%%~nxk
Set kFile=!kFile:KWTFCB_=!
FOR /F "usebackq delims=" %%f IN (`Dir "%In2%\!kFile!" /b /s /A:-D`) DO Move /Y "%%k" "%Out%\" && Move /Y "%%f" "%Out%\"
)
Какой способ быстрее-не исследовал, подозреваю - второй. В любом случае надо определить Ваши реальные папки In1 In2 Out (без \ на конце). Первый способ наверное можно чуть ускорить, но это не принципиально