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

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

Ветеран


Contributor


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

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


Dyaus, В предыдущем посте при совпадении имён файлы будут переписываться. ИМХО, подозреваю, реально в одном дне совпадений быть не может. Однако, если такое возможно, то
При совпадении имён в одном дне файлы будут переименованы:
имя(1).расширение имя(2).расширение и т д
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "BoxOut=Z:\Box_Out"

	Call :FolderToday "DName" 
	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\??-?????.*" /O:N /B /A:-D`) DO (
		Set "FName=%%~nxf" 
		Call :MyMove "%BoxIn%\%%~nxf" "%BoxOut%\%%FName:~3,2%%\%DName%"
	)
Pause
Exit /B

:MyMove
	Set /A i=0
	Set "FFn=%~n1"
	Set "FFx=%~x1"
	:Begin
		If Not Exist "%~2\%FFn%%FFx%" GoTo :Out
		Set /A i+=1
		Set "FFn=%~n1(%i%)"
	GoTo :Begin
	:Out
		If Not "%FFn%%FFx%"=="%~nx1" Ren "%~1" "%FFn%%FFx%"
		>nul Call XCopy /Y "%BoxIn%\%FFn%%FFx%"  "%BoxOut%\%%FName:~3,2%%\%DName%\"&&Del "%BoxIn%\%FFn%%FFx%"
Exit /B

:FolderToday
SetLocal
	Set "M01=January"
	Set "M02=February"
	Set "M03=March"
	Set "M04=April"
	Set "M05=May"
	Set "M06=June"
	Set "M07=July"
	Set "M08=August"
	Set "M09=September"
	Set "M10=October"
	Set "M11=November"
	Set "M12=December"

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LocalDateTime /VALUE') DO SET "TDate=%%d"
	Call Set "TDate=%%M%TDate:~4,2%%%.%TDate:~2,2%\%TDate:~6,2%"
EndLocal &Call Set "%~1=%TDate%"
Exit /B

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


Последний раз редактировалось megaloman, 05-09-2020 в 10:03.


Отправлено: 15:56, 04-09-2020 | #9