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

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

Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "Mask=*.xlsx"
	Set "DateMask=^[2-9][0-9][0-1][0-9][0-3][0-9] .*"

	Set "MyDate=%Date:~-2%%Date:~3,2%%Date:~0,2% "

	Pushd "%BoxIn%" ||(Echo Filder "%BoxIn%" not found &Pause &Exit /B 1) 
	For /F "usebackq delims=" %%f In (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /O:-D /T:W`) Do (
		Set "Name=%%f"
		Set "Dfile=%%~tf"
		Call Set "Dfile=%%Dfile:~0,10%%"
		Call Echo %%Name%%| >nul 2>&1 FindStr /I /X /R /C:"%DateMask%" &&Call Set "Name=%%Name:~7%%"
		Call :MyReName "%%f" "%%Name%%" "%Date%" "%%Dfile%%" "%MyDate%" ||(Popd &Exit /B 0)
	)
	Popd
pause
Exit /B 0

:MyReName
	If %3==%4 (Ren %1 "%~5%~2") Else (Exit /B 1) 
Exit /B 0
Предполагается, что формат даты в системе имеет вид дд.мм.гггг
Иначе понадобятся небольшие корректировки.

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


Последний раз редактировалось megaloman, 31-08-2021 в 23:59.


Отправлено: 20:10, 31-08-2021 | #3