Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Работает при ручном запуске, не работает через планировщик. (http://forum.oszone.net/showthread.php?t=353613)

POSTREALITY 26-05-2023 19:54 3009635

Работает при ручном запуске, не работает через планировщик.
 
Здравствуйте, помогите пожалуйста понять где ошибка, сам разобраться не могу, перепробовал кучу вариантов, ничего не помогает.
Смысл проблемы - есть скрипт:
Код:

@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 3009643

Цитата:

Цитата POSTREALITY
в примапленный сетевой каталог (S:\) »

Цитата:

Цитата POSTREALITY
через шедулер работать не хочет »

А пользователи, у S: и задачи, от которого выполняется сценарий совпадают?

POSTREALITY 27-05-2023 09:30 3009646

Цитата:

Цитата NickM
А пользователи, у S: и задачи, от которого выполняется сценарий совпадают? »

Диск примаплен тем же доменным пользователем, от которого запускается задача. В Security options задачи выбрал Run whether user is logged on or not. Галочку Do not store password не ставил. Highest privileges тоже не ставил.

YuS_2 27-05-2023 10:36 3009647

Цитата:

Цитата POSTREALITY
Run whether user is logged on or not. »

А как Вы переводите эту фразу?
В зависимости от ответа, продумайте логику "примапливания" дисков без авторизации аккаунта - если получится выполнить, то Ваша задача должна заработать... :)

Цитата:

Цитата POSTREALITY
Скрипт немного замороченный »

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

DJ Mogarych 27-05-2023 12:15 3009650

Код ошибки в планировщике какой?

Serguei Kouzmine 28-05-2023 05:13 3009672

Цитата:

Цитата POSTREALITY
перепробовал кучу вариантов, ничего не помогает. »


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

POSTREALITY 29-05-2023 20:53 3009721

Цитата:

Цитата YuS_2
А как Вы переводите эту фразу?
В зависимости от ответа, продумайте логику "примапливания" дисков без авторизации аккаунта - если получится выполнить, то Ваша задача должна заработать... »

Благодарю за наводку! Итого - сделал симлинк на диске Ц на сетевой каталог и в скрипте указал пути симлинка, а не примапленного диска. Так скрипт заработал. Магия )))

Цитата:

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

Прошу прощения :) Но, справедливости ради - я сразу предупредил что скрипт замороченный )))

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

rafka 31-05-2023 10:16 3009796

Цитата:

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

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


Время: 08:44.

Время: 08:44.
© OSzone.net 2001-