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

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

Ветеран


Contributor


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

Профиль | Отправить 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] .*"

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "MyDate=%%d" &Call Set "MyDate=%%MyDate:~2,6%% "

	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 (
		For /F "delims= " %%d In ("%%~tf") Do (
			If "%Date%"=="%%d" (
				Set "Name=%%f"
				Call Echo %%Name%%| >nul 2>&1 FindStr /I /X /R /C:"%DateMask%" &&Call Set "Name=%%Name:~7%%"
				Call ReName "%%f" "%MyDate%%%Name%%"
				
			) Else (
				GoTo :Continue
			)
		) 
	)
	:Continue
	Popd
pause
Exit /B 0

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


Отправлено: 11:36, 01-09-2021 | #15