Вот вариант с созданием лог-файла рядом с батником. Дайте его посмотреть.
Код:
@Echo Off
cls
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Year=%%d"
Set "Log=%~dpnx0_%Year:~0,8%.log"
Set /A Year=%Year:~0,4%
rem Call :MyMove "Z:\Box_In" "Z:\Box_Out" "report_stat" "??????ReadUser.txt"
>>"%Log%" 2>>&1 Call :MyMove "\\Server\Test1\test1" "\\Server\Test1\test1" "report_stat" "??????ReadUser.txt"
>>"%Log%" 2>>&1 Call :MyMove "\\Server\Test1\test2" "\\Server\Test1\test2" "report_stat" "??????ReadUser.txt"
>>"%Log%" 2>>&1 Call :MyMove "\\Server\Test1\test3" "\\Server\Test1\test3" "report_stat" "??????ReadUser.txt"
rem pause
Exit /B 0
:MyMove
Set /A NNNN+=1
Set "A=%1" &If Not Exist %1 Set "A=%1 not exist"
Set "B=%2" &If Not Exist %2 Set "B=%2 not exist"
Echo.
Echo === %Date% %Time% =========== Year=%Year% === %NNNN%
Echo 1= %A%
Echo 2= %B%
Echo 3= %3
Echo 4= %4
If Not Exist "%~1\%~3%Year%%~4" (
Echo "%~1\%~3%Year%%~4" not exist
Dir /B /A:-D %1
)
Set /A OldYear=%Year%-5
Set /A OldYear=%Year%-0
FOR /L %%Y IN (%Year%,-1,%OldYear%) DO (
If Exist "%~1\%~3%%Y%~4" (
If Not Exist "%~2\%%Y\" Md "%~2\%%Y"
Move /Y "%~1\%~3%%Y%~4" "%~2\%%Y\"
)
)
Exit /B
Пути, естественно, пропишИте свои.