Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Новый участник


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

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


megaloman, дополнение к задаче:
Настроил копирование в другую папку Set "Dest=Name", нужно переименовать третью часть файлов после копирования по алгоритму: 1234_123_2.jpg = 1234_123_9.jpg; 1234_123_3.jpg = 1234_123_10.jpg и т.д. по возрастанию.
Возможно реализовать?
Заранее спасибо!
Скрытый текст

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

	Set "Ext=jpg"

	Set "Mask=[0-9]*_[0-9]*_[0-9]*"
rem	Set "Mask=[0-9]*_[0-9]*_[0-9]"

	Set "Log=%Dir1%\%~nx0.log"

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

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

	>"%Log%" Echo %Date% %Time%

	For /F "usebackq tokens=1,2,3* delims=_." %%i In (`2^>nul more "%Dir1%\%~nx0.tmp1"`) Do (
		>nul 2>nul FINDSTR /I /R /C:"\\%%i_%%j_%%k\.%%l$" "%Dir1%\%~nx0.tmp2" &&(
			For /F "usebackq delims=" %%f In (`2^>nul more "%Dir1%\%~nx0.tmp2" ^|FINDSTR /I /R /C:"\\%%i_%%j_[0-9]*\.%%l$"`) Do (
				If Not Exist "%Dir1%\%%~nxf" (>nul Copy "%%f" "%Dest%\" &>>"%Log%" Echo %%f)
			)
		)
	)
	>>"%Log%" Echo %Date% %Time%

	2>nul Del "%Dir1%\%~nx0.tmp1"
	2>nul Del "%Dir1%\%~nx0.tmp2"
Exit /B 0

Отправлено: 14:06, 12-12-2019 | #7