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

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

Ветеран


Contributor


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

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


athlonix4@twitter,
Код: Выделить весь код
@Echo Off
cls
 	Set "BoxIn=Z:\Box_In"
rem	Set "BoxIn=%~dp0"

	If Not "%~1"=="" Set "BoxIn=%~1"

	If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%
	FOR /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D "%BoxIn%\*_20??-??-??*.*"`) DO If Exist "%BoxIn%\%%f" (
			Set "NN=%%~nf"
			Call :MyMove "%%f" "_20%%NN:*_20=%%"
	)
Pause
Exit /B

:MyMove
	Set "Name=%~n1"
	Call Set "Name=%%Name:%~2=%%"
	2>nul Md "%BoxIn%\%Name%"
	>nul Move /Y "%BoxIn%\%Name%_20??-??-??*.*" "%BoxIn%\%Name%\"
Exit /B
Батник будет работать корректно, если внутри имени, например, Nikolay, нет сочетания _20, например Niko_20lay

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


Отправлено: 22:49, 19-03-2022 | #11