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

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

Код: plaintext
w $zv
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #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
Как запустить из Каше батовский файл.
    #36437870
nvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvp
Гость
krvsa nvp , версию Кащея еще укажи...

Код: plaintext
w $zv

Cache for Windows (x86-32) 2007.1.3 (Build 607), чтоб она лопнула.
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #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
Как запустить из Каше батовский файл.
    #36438188
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет работать или нет, зависит от "начинки" этого test.bat. Надежнее так:
Код: plaintext
w $zf(- 1 ,"start <путь>\файл.сmd")
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #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
Как запустить из Каше батовский файл.
    #36438358
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вполне осмысленные ошибки... При запуске из Каше у вас другой рабочий каталог, он отличен от пути к файлу. Указывайте полные пути к файлам, и будет Вам счастье. Другой способ: создайте ярлык для вашего cmd-файла, задайте в свойствах ярлыка правильную "Рабочую папку", убедитесь, что оно работает с ярлыка, и запускайте ярлык из Каше, как я предлагал в предыдущем посте. У ярлыка добавляется второе расширение ".lnk".
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #36438604
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вы не ждете окончания работы WinRar (которая запускается в другом потоке)
Используйте RAR
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #36441615
nvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvp
Гость
Игорь СойниковИ еще вы не ждете окончания работы WinRar (которая запускается в другом потоке)
Используйте RAR
Дак и так вроде запускаю, rar.exe, а не winrar. А как проконтролировать что cmd скрипт закончил работу?
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #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
Как запустить из Каше батовский файл.
    #36441683
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ярлыке указывается рабочий каталог, а в CMD надо самому указать переход на нужный каталог.
что-то типа
D:
cd /ARCH
далее выполнять действия
при вызове $ZF(-1,) рабочий каталог это путь к текущей БД
Согласно документации $ZF(-1) ждет завершения, а $ZF(-2) только запускает дочерний процесс
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #36441717
nvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvp
Гость
Игорь Сойников,

Похоже что не хочет ждать, БД отмонтируется и сразу после запуска arc.lnk монтирует БД обратно но приетом архивирование и копирование продолжается.
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #36441809
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно что не ждет, т.к. $zf(-1,"start ...") запускает отдельный процесс в Windows, как и $zf(-2). Существуют разные способы синхронизации процессов, но мне кажется в Вашем случае этого можно избежать, вынеся операции монтирования/размонтирования во внешний .cmd-скрипт. Т.е. размонтировали, заархивировали, снова смонтировали.
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #36441935
nvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvp
Гость
Alexey MaslovПравильно что не ждет, т.к. $zf(-1,"start ...") запускает отдельный процесс в Windows, как и $zf(-2). Существуют разные способы синхронизации процессов, но мне кажется в Вашем случае этого можно избежать, вынеся операции монтирования/размонтирования во внешний .cmd-скрипт. Т.е. размонтировали, заархивировали, снова смонтировали.
Это было бы хорошо, но эта байда должна работать на 2007 64-бит (пока разроботчики не дадут отмашку 2009, а может и 2010), а на ней довольно глючный менеджер заданий, если в нем прописано ежедневное задание, то покрайней мере у меня при останове каше из внешнего скрипта были глюки, переписывался с IS и пришли к выводу что 2007 надо прибивать особенно 64-битную версию . А на 2009 как сказанно выше команды фас небыло. Но за идею спасибо поробую, может при отмонтировании из внешнего cmd-скрипта глюков не будет. Но наверное и архивирование тоже надо запускать из вне. Спасибо, пойду дерзать.
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #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
Как запустить из Каше батовский файл.
    #36442433
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но наверное и архивирование тоже надо запускать из вне.Возможно. Вообще, выбор планировщика (ОС'евой vs. Кашовый) не так уж однозначен. Ясно только, что нельзя оба сразу, а то запросто запустят параллельно свои задачи :( Основные претензии к Кашовому планировщику такие:неотключаемая фича: в случае ошибки задание блокируется в очереди; у нас как-то было: не удалось отправить уведомление о завершении по почте - и из-за этого задание заблокировалось (а это был BACKUP :()
убогие почтовые классы в Cache, об этом даже писАть не хочется.
Достоинства:
простота, особенно при использовании внутрикашовых API
относительная независимость от платформы (до тех пор, пока не появляются $zf(-N,...)).
Других достоинств, честно говоря, не вижу.
...
Рейтинг: 0 / 0
Как запустить из Каше батовский файл.
    #36443941
nvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvp
Гость
Alexey Maslov,

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

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

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

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

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


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