POSTREALITY
26-05-2023, 19:54
Здравствуйте, помогите пожалуйста понять где ошибка, сам разобраться не могу, перепробовал кучу вариантов, ничего не помогает.
Смысл проблемы - есть скрипт:
@echo off
set YYYY_T0=%date:~6,4%
set YY_To=%date:~8,2%
set MM_T0=%date:~3,2%
set DD_T0=%date:~0,2%
set curyear_t0=%date:~6,4%
set curdate_t0=%YYYY_T0%%MM_T0%%DD_T0%
set mask_t0=%DD_T0%%MM_T0%%YY_T0%
call :CurDate -1
call :CurYear -1
call :Mask -1
for %%a in (C:\CC\*%mask_t0%*.*) do move /y %%a (S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\CC\*%mask_t1%*.*) do move /y %%a (S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\CU\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\CU\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\SE\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\SE\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\EQ\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\EQ\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\FO\*%curdate_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\FO\*%curdate_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\ERK\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\ERK\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
exit /b
:CurDate
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& set curdate_t1=%yyyy%%mm:~-2%%dd:~-2%
Exit /B
:CurYear
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& set curyear_t1=%yyyy%
Exit /B
:Mask
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& set mask_t1=%dd:~-2%%mm:~-2%%yyyy:~-2%
Exit /B
Скрипт немного замороченный, но в двух словах он выполняет поиск файлов в определённых директориях локального диска (C:\) и определённой маской в именах самих файлов и при нахождении файлов перемещает их в примапленный сетевой каталог (S:\) в каталоги которые имеют имена сегодняшней или вчерашней даты.
Так вот, когда ручками скрипт запускаешь, то он прекрасно справляется с задачей. А через шедулер работать не хочет :(
Смысл проблемы - есть скрипт:
@echo off
set YYYY_T0=%date:~6,4%
set YY_To=%date:~8,2%
set MM_T0=%date:~3,2%
set DD_T0=%date:~0,2%
set curyear_t0=%date:~6,4%
set curdate_t0=%YYYY_T0%%MM_T0%%DD_T0%
set mask_t0=%DD_T0%%MM_T0%%YY_T0%
call :CurDate -1
call :CurYear -1
call :Mask -1
for %%a in (C:\CC\*%mask_t0%*.*) do move /y %%a (S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\CC\*%mask_t1%*.*) do move /y %%a (S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\CU\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\CU\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\SE\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\SE\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\EQ\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\EQ\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\FO\*%curdate_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\FO\*%curdate_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
for %%a in (C:\ERK\*%mask_t0%*.*) do (move /y %%a S:\%curyear_t0%\%curdate_t0%)
for %%a in (C:\ERK\*%mask_t1%*.*) do (move /y %%a S:\%curyear_t1%\%curdate_t1%)
exit /b
:CurDate
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& set curdate_t1=%yyyy%%mm:~-2%%dd:~-2%
Exit /B
:CurYear
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& set curyear_t1=%yyyy%
Exit /B
:Mask
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& set mask_t1=%dd:~-2%%mm:~-2%%yyyy:~-2%
Exit /B
Скрипт немного замороченный, но в двух словах он выполняет поиск файлов в определённых директориях локального диска (C:\) и определённой маской в именах самих файлов и при нахождении файлов перемещает их в примапленный сетевой каталог (S:\) в каталоги которые имеют имена сегодняшней или вчерашней даты.
Так вот, когда ручками скрипт запускаешь, то он прекрасно справляется с задачей. А через шедулер работать не хочет :(