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

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

Ветеран


Contributor


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

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


Запускать не чаще 1 раза в 10 мин
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"

	Set "Arc1=Z:\Box_Arc\Arc1"
	Set /A NArc1=3

	Set "Arc2=Z:\Box_Arc\Arc2"
	Set /A NArc2=3
	
	Call :Count "%Arc1%" "iArc1" "tArc1" "oArc1"
	Call :Count "%Arc2%" "iArc2" "tArc2" "oArc2"

	Set "Arc=%Arc1%"
	Set "oArc=%oArc1%"
	Set /A iArc=%iArc1%
	Set /A NArc=%NArc1%

	If %iArc1% GEQ %NArc1% If %iArc2% LSS %NArc2% Set /A tArc2=0
	If %tArc2% LSS %tArc1% (
		Set "Arc=%Arc2%"
		Set "oArc=%oArc2%"
		Set /A iArc=%iArc2%
		Set /A NArc=%NArc2%
	)

	If %iArc% GEQ %NArc% Rd /Q /S "%oArc%"

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "TDate=%%d"
	For %%i In ("%BoxIn%") Do XCopy /E /H /R /K /Y /D /C /Q "%BoxIn%" "%Arc%\%TDate:~0,14%_%%~nxi\"
pause
Exit /B

:Count
SetLocal
rem	Set "Val=CreationDate"
	Set "Val=LastModified"

	2>nul MD %1

	Set /A N=0, DT=900000000 &Set "Old= "
	FOR /F "usebackq delims=" %%d IN (`2^>nul Dir %1 /B /A:D /O:-D /T:C`) DO (
		Call Set /A N+=1
		Set "Old=%~1\%%d"
	)
	If "%N%"=="0" EndLocal &(Set /A %~2=0, %~3=900000000 &Set "%~4=" &Exit /B 0) 
 	FOR /F "tokens=1,2 delims== " %%i IN ('"WMIC FSDIR WHERE name="%Old:\=\\%" get %Val% /format:Textvaluelist"') DO If /I "%%i"=="%Val%" Set "DT=%%j"
	Set /A DT=%DT:~2,9%
EndLocal &(Set /A %~2=%N%, %~3=%DT% &Set "%~4=%Old%")
Exit /B

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


Отправлено: 18:00, 14-09-2020 | #5