Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
	Set "Dir1=\\Server1\Test1"
	Set "Dir2=\\Server2\Test2"

	Set "Ext=jpg"
	Set "Mask=[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9]_[0-9]"

	>"%Dir1%\%~nx0.tmp" (For /F "usebackq delims=" %%d In (`2^>nul Dir /B /S /A:D "%Dir2%\"`) Do (
		For /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D "%%d\*.%Ext%" ^|FINDSTR /I /R /C:"^%Mask%\.%Ext%$"`) Do (Echo %%d\%%f)
	))

	For /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D "%Dir1%\*.%Ext%" ^|FINDSTR /I /R /C:"^%Mask%\.%Ext%$"`) Do (
		Call Set "Ffile=%%~nf"
		>nul 2>&1 FINDSTR /I /C:"\%%f" "%Dir1%\%~nx0.tmp" &&Call :MyCopy "\\%%Ffile:~0,-1%%[0-9]\.%Ext%$" "%Dir1%\%~nx0.tmp"
	)
	2>nul Del "%Dir1%\%~nx0.tmp"
Exit /B 0

:MyCopy
	For /F "usebackq delims=" %%g In (`2^>nul FINDSTR /I /R /C:%1 %2`) Do >nul Copy "%%g" "%~dp2" 
Exit /B
Боюсь, при большом количестве файлов процесс займет значительное время

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:45, 10-12-2019 | #2