Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как запустить из Каше батовский файл. / 24 сообщений из 24, страница 1 из 1
28.01.2010, 14:07
    #36436223
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
День добрый всем!

Подскажите как запустить батовский файл из каше, через w $zf(-2,"d:\arc.bat") пробовал не запускается, если w $zf(-2,"calc.exe") то да. Что делаю не так?
Спасибо.
...
Рейтинг: 0 / 0
28.01.2010, 16:17
    #36436632
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
nvp , версию Кащея еще укажи...

Код: plaintext
w $zv
...
Рейтинг: 0 / 0
28.01.2010, 20:35
    #36437257
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Проверял в терминале Windows XP, Cache 5.021, Cache 2009

Код: plaintext
1.
2.
3.
 d $zf(- 1 ,"c:\test.bat") 
 !c:\test.bat
 d $zf(- 2 ,"c:\test.bat") 

Хм, работает. Откуда запускаете?
...
Рейтинг: 0 / 0
29.01.2010, 10:29
    #36437870
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
krvsa nvp , версию Кащея еще укажи...

Код: plaintext
w $zv

Cache for Windows (x86-32) 2007.1.3 (Build 607), чтоб она лопнула.
...
Рейтинг: 0 / 0
29.01.2010, 10:33
    #36437884
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
doublefintПроверял в терминале Windows XP, Cache 5.021, Cache 2009

Код: plaintext
1.
2.
3.
 d $zf(- 1 ,"c:\test.bat") 
 !c:\test.bat
 d $zf(- 2 ,"c:\test.bat") 

Хм, работает. Откуда запускаете?
Пока с терминала, из области user.
...
Рейтинг: 0 / 0
29.01.2010, 11:56
    #36438188
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Будет работать или нет, зависит от "начинки" этого test.bat. Надежнее так:
Код: plaintext
w $zf(- 1 ,"start <путь>\файл.сmd")
...
Рейтинг: 0 / 0
29.01.2010, 12:10
    #36438253
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Alexey Maslov,

Начинка вот такая:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@ECHO OFF
rem ECHO Begin %DATE% %TIME% > log.txt
del c:\T\data.rar

rem ECHO "Start WinRAR: %TIME%" >>log.txt
"C:\Program Files\WinRAR\Rar.exe"  a -r -m1 -dh -y -ilog.\rar.log c:\T\data @INCLUDE
rem ECHO "Stop WinRAR: %TIME%" >>log.txt

rem ECHO "Start copy: %TIME% " >> log.txt
xcopy c:\T\data.rar "f:\copybd\%DATE%\" /V /Y
rem ECHO "End copy: %TIME%" >>log.txt

d:\SOI.exe > c:\TF\copydat.txt

rem ECHO End %TIME% >> log.txt

Реально выполняется только строка:
авторd:\SOI.exe > c:\TF\copydat.txt
А на все остальное:

Код: plaintext
1.
2.
3.
4.
5.
6.
Не удается найти c:\T\data.rar

Невозможно открыть INCLUDE
Не удается найти указанный файл.Не найден файл: data.rar
Скопировано файлов: 0.

c:\intersystems\cache\mgr\user>
...
Рейтинг: 0 / 0
29.01.2010, 12:38
    #36438358
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Вполне осмысленные ошибки... При запуске из Каше у вас другой рабочий каталог, он отличен от пути к файлу. Указывайте полные пути к файлам, и будет Вам счастье. Другой способ: создайте ярлык для вашего cmd-файла, задайте в свойствах ярлыка правильную "Рабочую папку", убедитесь, что оно работает с ярлыка, и запускайте ярлык из Каше, как я предлагал в предыдущем посте. У ярлыка добавляется второе расширение ".lnk".
...
Рейтинг: 0 / 0
29.01.2010, 13:49
    #36438604
Игорь Сойников
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
И еще вы не ждете окончания работы WinRar (которая запускается в другом потоке)
Используйте RAR
...
Рейтинг: 0 / 0
01.02.2010, 10:54
    #36441615
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Игорь СойниковИ еще вы не ждете окончания работы WinRar (которая запускается в другом потоке)
Используйте RAR
Дак и так вроде запускаю, rar.exe, а не winrar. А как проконтролировать что cmd скрипт закончил работу?
...
Рейтинг: 0 / 0
01.02.2010, 11:02
    #36441640
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Alexey MaslovВполне осмысленные ошибки... При запуске из Каше у вас другой рабочий каталог, он отличен от пути к файлу. Указывайте полные пути к файлам, и будет Вам счастье. Другой способ: создайте ярлык для вашего cmd-файла, задайте в свойствах ярлыка правильную "Рабочую папку", убедитесь, что оно работает с ярлыка, и запускайте ярлык из Каше, как я предлагал в предыдущем посте. У ярлыка добавляется второе расширение ".lnk".
Спасибо, с ярлыком все получилось (интересно вчем для винды разница ярлыком запустить или cmd скрипт?).

Подскажите пожалуйста, как предотвратить монтирование БД, до завершения выполнения arc.lnk

Я сам не программист, попробовал вот так:

Код: plaintext
1.
2.
3.
s name="d:\bd\reg"
s rc=$zu( 3 ,name)
d $ZF(- 1 ,"start d:\archives\arc.lnk")
s rc=$zu( 17 ,name)

и не дожитдаясь окончания arc.lnk, происходит монтирование БД.
...
Рейтинг: 0 / 0
01.02.2010, 11:21
    #36441683
Игорь Сойников
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
В ярлыке указывается рабочий каталог, а в CMD надо самому указать переход на нужный каталог.
что-то типа
D:
cd /ARCH
далее выполнять действия
при вызове $ZF(-1,) рабочий каталог это путь к текущей БД
Согласно документации $ZF(-1) ждет завершения, а $ZF(-2) только запускает дочерний процесс
...
Рейтинг: 0 / 0
01.02.2010, 11:31
    #36441717
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Игорь Сойников,

Похоже что не хочет ждать, БД отмонтируется и сразу после запуска arc.lnk монтирует БД обратно но приетом архивирование и копирование продолжается.
...
Рейтинг: 0 / 0
01.02.2010, 12:03
    #36441809
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Правильно что не ждет, т.к. $zf(-1,"start ...") запускает отдельный процесс в Windows, как и $zf(-2). Существуют разные способы синхронизации процессов, но мне кажется в Вашем случае этого можно избежать, вынеся операции монтирования/размонтирования во внешний .cmd-скрипт. Т.е. размонтировали, заархивировали, снова смонтировали.
...
Рейтинг: 0 / 0
01.02.2010, 12:50
    #36441935
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Alexey MaslovПравильно что не ждет, т.к. $zf(-1,"start ...") запускает отдельный процесс в Windows, как и $zf(-2). Существуют разные способы синхронизации процессов, но мне кажется в Вашем случае этого можно избежать, вынеся операции монтирования/размонтирования во внешний .cmd-скрипт. Т.е. размонтировали, заархивировали, снова смонтировали.
Это было бы хорошо, но эта байда должна работать на 2007 64-бит (пока разроботчики не дадут отмашку 2009, а может и 2010), а на ней довольно глючный менеджер заданий, если в нем прописано ежедневное задание, то покрайней мере у меня при останове каше из внешнего скрипта были глюки, переписывался с IS и пришли к выводу что 2007 надо прибивать особенно 64-битную версию . А на 2009 как сказанно выше команды фас небыло. Но за идею спасибо поробую, может при отмонтировании из внешнего cmd-скрипта глюков не будет. Но наверное и архивирование тоже надо запускать из вне. Спасибо, пойду дерзать.
...
Рейтинг: 0 / 0
01.02.2010, 12:56
    #36441955
2acid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
nvp,

автор
Подскажите пожалуйста, как предотвратить монтирование БД, до завершения выполнения arc.lnk

Наверное можно попробовать так:
-предположим у вас идет архивирование файла:
Код: plaintext
1.
2.
3.
@echo off
rar a -ep -o+ -dh -ri15 -y cache.rar cache.dat
echo Ok > ready.log
По результату архивации, получится файл ready.log, его и надо проверять перед монтирование, если он есть, то монтируем БД и удаляем файл ready.log, иначе ждем файла...
...
Рейтинг: 0 / 0
01.02.2010, 15:29
    #36442433
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Но наверное и архивирование тоже надо запускать из вне.Возможно. Вообще, выбор планировщика (ОС'евой vs. Кашовый) не так уж однозначен. Ясно только, что нельзя оба сразу, а то запросто запустят параллельно свои задачи :( Основные претензии к Кашовому планировщику такие:неотключаемая фича: в случае ошибки задание блокируется в очереди; у нас как-то было: не удалось отправить уведомление о завершении по почте - и из-за этого задание заблокировалось (а это был BACKUP :()
убогие почтовые классы в Cache, об этом даже писАть не хочется.
Достоинства:
простота, особенно при использовании внутрикашовых API
относительная независимость от платформы (до тех пор, пока не появляются $zf(-N,...)).
Других достоинств, честно говоря, не вижу.
...
Рейтинг: 0 / 0
02.02.2010, 11:27
    #36443941
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Alexey Maslov,

Еще, есть такой глюк в планировщике Каше, если по какой либо причине небыло выполнено задание (сервер выключен, БД отмонтирована, ит.д.) он упертый как осел, и посторается их все выполнить. После нового года (7 дней сервак был выключен) так он за эти семь дней и отыгрался, выполнил все что пропустил.

в Вашем случае этого можно избежать, вынеся операции монтирования/размонтирования во внешний .cmd-скрипт. Т.е. размонтировали, заархивировали, снова смонтировали.

Так и сделал, проблем нет. Еще раз спасибо за советы.
...
Рейтинг: 0 / 0
02.02.2010, 13:36
    #36444430
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
он за эти семь дней и отыгрался, выполнил все что пропустилА у Вас часом в свойствах заданий не задано ли
Код: plaintext
Повторно запланировать задачу после рестарта системы?
По крайней мере, планировщик Cache 2008.1-2009.1 этот флажок "уважает".
...
Рейтинг: 0 / 0
02.02.2010, 18:32
    #36445485
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
nvp
Подскажите пожалуйста, как предотвратить монтирование БД, до завершения выполнения arc.lnk

Я сам не программист, попробовал вот так:

Код: plaintext
1.
2.
3.
s name="d:\bd\reg"
s rc=$zu( 3 ,name)
d $ZF(- 1 ,"start d:\archives\arc.lnk")
s rc=$zu( 17 ,name)

и не дожитдаясь окончания arc.lnk, происходит монтирование БД.
Добавьте ключ /WAIT
Код: plaintext
d $ZF(- 1 ,"start /WAIT d:\archives\arc.lnk")
...
Рейтинг: 0 / 0
04.02.2010, 11:57
    #36449114
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
Alexey Maslovон за эти семь дней и отыгрался, выполнил все что пропустилА у Вас часом в свойствах заданий не задано ли
Код: plaintext
Повторно запланировать задачу после рестарта системы?
По крайней мере, планировщик Cache 2008.1-2009.1 этот флажок "уважает".
Извините, а это где? В менеджере задач в 2007 этого нет.
...
Рейтинг: 0 / 0
04.02.2010, 13:03
    #36449363
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
ну яДобавьте ключ /WAIT
Код: plaintext
d $ZF(- 1 ,"start /WAIT d:\archives\arc.lnk")

Замечательно, теперь и из кащея делает как надо. Спасибо.
...
Рейтинг: 0 / 0
04.02.2010, 13:04
    #36449368
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
В менеджере задач в 2007 этого нетЭтой версии уже не помню. В 2008-2009 эта настройка имеется в свойствах каждой задачи.
...
Рейтинг: 0 / 0
04.02.2010, 14:12
    #36449621
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить из Каше батовский файл.
nvpну яДобавьте ключ /WAIT
Код: plaintext
d $ZF(- 1 ,"start /WAIT d:\archives\arc.lnk")

Замечательно, теперь и из кащея делает как надо. Спасибо.
Извеняюсь, но погоричился, взял не тот arc.cmd. В нем была встроено отмонтирование БД. А в чистом виде не пошло, ключа мало. Не хочет ждать, сразу монтирует БД обратно. Наверное попробую с этим предложением:
По результату архивации, получится файл ready.log, его и надо проверять перед монтирование, если он есть, то монтируем БД и удаляем файл ready.log, иначе ждем файла...
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как запустить из Каше батовский файл. / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]