Войти

Показать полную графическую версию : Работает при ручном запуске, не работает через планировщик.


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:\) в каталоги которые имеют имена сегодняшней или вчерашней даты.

Так вот, когда ручками скрипт запускаешь, то он прекрасно справляется с задачей. А через шедулер работать не хочет :(

NickM
27-05-2023, 00:37
в примапленный сетевой каталог (S:\) »
через шедулер работать не хочет »
А пользователи, у S: и задачи, от которого выполняется сценарий совпадают?

POSTREALITY
27-05-2023, 09:30
А пользователи, у S: и задачи, от которого выполняется сценарий совпадают? »
Диск примаплен тем же доменным пользователем, от которого запускается задача. В Security options задачи выбрал Run whether user is logged on or not. Галочку Do not store password не ставил. Highest privileges тоже не ставил.

YuS_2
27-05-2023, 10:36
Run whether user is logged on or not. »
А как Вы переводите эту фразу?
В зависимости от ответа, продумайте логику "примапливания" дисков без авторизации аккаунта - если получится выполнить, то Ваша задача должна заработать... :)

Скрипт немного замороченный »
Не то слово... какая-то портянка с кучей циклов на перемещение и зубодробильным расчетом даты-времени... это не замороченный, а ... ну, да ладно, это уже другая история... :)

DJ Mogarych
27-05-2023, 12:15
Код ошибки в планировщике какой?

Serguei Kouzmine
28-05-2023, 05:13
перепробовал кучу вариантов, ничего не помогает. »


А что такое «нельзя», ты знаешь? Это значит: не желательно, не одобряется, а поскольку не одобряется, значит, поступать так нельзя. Что можно — это еще неизвестно, а уж что нельзя — то нельзя.
Подробнее на livelib.ru:
https://www.livelib.ru/quote/1074025-ulitka-na-sklone-strugatskij-an-strugatskij-bn

POSTREALITY
29-05-2023, 20:53
А как Вы переводите эту фразу?
В зависимости от ответа, продумайте логику "примапливания" дисков без авторизации аккаунта - если получится выполнить, то Ваша задача должна заработать... »
Благодарю за наводку! Итого - сделал симлинк на диске Ц на сетевой каталог и в скрипте указал пути симлинка, а не примапленного диска. Так скрипт заработал. Магия )))

Не то слово... какая-то портянка с кучей циклов на перемещение и зубодробильным расчетом даты-времени... это не замороченный, а ... ну, да ладно, это уже другая история... »
Прошу прощения :) Но, справедливости ради - я сразу предупредил что скрипт замороченный )))

Спасибо за помощь!

rafka
31-05-2023, 10:16
Благодарю за наводку! Итого - сделал симлинк на диске Ц на сетевой каталог и в скрипте указал пути симлинка, а не примапленного диска. Так скрипт заработал. Магия ))) »

а можно скриншотами увидеть как все вы это сделали ?




© OSzone.net 2001-2012