Вход | Регистрация


Информационные технологии ::

Метки: 

Вопросы по бат файлам.

Я
   ILM
 
02.08.18 - 08:32
через Winrs запускается батфайл на сервере.
1. Сначала архива базы 1С(рабочая).
2. Создание базы 1С(копия) из архива.
3. Запуск 1С(копия) с обработкой и расчетами. Потом выгрузка результатов и закрытие базы.
4. Запуск 1С(рабочая) с загрузкой результатов и закрытие.

В батфайле команда start /wait не дожидается окончания запуска 1С программы, как сделать чтобы ждала окончания?
Пробовал через команду taskkill вот так:

:loop
ping -n 5 127.0.0.1 >nul
tasklist|find /i "1С8.exe">nul && goto loop

но имя процесса "1C8.exe" и их может быть много, а мне нужен только тот который был запущен на 3-м шаге.

Как сделать чтобы дождаться окончания 1С?
 
  Рекламное место пустует
   Asmody
 
1 - 02.08.18 - 08:37
(0) убрать start /wait вообще?
   Локи-13
 
2 - 02.08.18 - 08:38
используй PowerShell
   ILM
 
3 - 02.08.18 - 08:41
(1) Что добавить вместо
   ILM
 
4 - 02.08.18 - 08:42
(2) Это сервер, а админы не ставят.
   RKx
 
5 - 02.08.18 - 08:49
сервер sql?
   spectre1978
 
6 - 02.08.18 - 08:51
(0) гуевые приложения, по-моему, бесполезно через start /wait запускать, это только для консольных прокатывает. Для создания DTшника я делал не на бате, а на VBS. Делал следующим образом - запускал 1С, а потом в цикле пытался этот самый dt-файл открыть эксклюзивно через паузу секунд в 10. Когда открывать удавалось - значит, я полагал что 1С завершила свои манипуляции, и можно делать дальнейшие действия. Как-то так.
   spectre1978
 
7 - 02.08.18 - 08:57
вы можете сделать примерно также - создать из обработки какой-то флаговый файл, из батника поотслеживать его присутствие (там же есть IF EXIST конструкция?), а как будет удален - так продолжить...
   ILM
 
8 - 02.08.18 - 09:57
(5) Да
   ILM
 
9 - 02.08.18 - 10:04
(1) А что использовать?
   sitex
 
10 - 02.08.18 - 10:20
(0) База какая Файловая ,Клиент серверная ? SQL?
 
  Рекламное место пустует
   spectre1978
 
11 - 02.08.18 - 10:54
(9) в общем случае я не вижу, как средствами батника решить вашу задачу. Средствами WinAPI запустить и отследить работу запущенного процесса можно, но это надо на нормальном языке прогу писАть. А на скриптах - проще всего через занятие файлов.
   Cool_Profi
 
12 - 02.08.18 - 10:55
(4) Сервер какой? В соврменных PS ставится дефолтом
   YaFedor
 
13 - 02.08.18 - 10:55
Используй  скрипт VBS
   ILM
 
14 - 02.08.18 - 15:30
Теперь другая проблема, 1с отработав удаленно остаётся висеть на удаленном компе. Единственный способ сработал через wmi. Подскажите, как вы на удаленном компе запускаете 1с.
   ILM
 
15 - 02.08.18 - 15:31
Есть ли способ сделать без расписания?
   ILM
 
16 - 02.08.18 - 15:32
(13) можно пример удаленного запуска?
   Cool_Profi
 
17 - 02.08.18 - 15:34
(16) psexec
   spectre1978
 
18 - 02.08.18 - 19:53
(14) В чем проблема, в том что не завершается? Если вы запускаете какой-то регламент вроде выгрузки DT, то, если это задать через комстроку, она, мне кажется, сама завершится, как закончит свои дела. А если вы выполняете обработку - то ЗавершитьРаботуСистемы же...
   Доминошник
 
19 - 02.08.18 - 20:22
(0) А что мешает в 3-м шаге создавать флаг-файл с содержимым (именем) типа "Хозяин, я сегодня всё сделал, можно продолжать"?
И искать можно, по-моему, не только по имени процесса, но и по пользователю, запустившему процесс.
Соответственно - как вариант - запуск шага 3 от другого пользователя.
   PuhUfa
 
20 - 02.08.18 - 20:29
(0) а что это за такие "обработкой и расчетами" что требует такой заморочки?
   Сияющий в темноте
 
21 - 03.08.18 - 12:31
Через VbScripy обьект Wscript.Shell и его команда run прекрасно дожидается того,что нужно,и даже окна не создает.
ваша задача решается на ура через него.
   spectre1978
 
22 - 03.08.18 - 16:08
(21) Только для консольника (console application). Если приложение GUI, тогда, насколько я помню, нет. Выполняется моментально и переходит на следующую строку кода.
   Вафель
 
23 - 03.08.18 - 16:09
ты запускаешь не ту 1ску - поэтому и не ждет.
запускай прямо нужный exe-шник
   Вафель
 
24 - 03.08.18 - 16:10
типа такого
"C:/1CData/8.3.9.2170_x64/bin/1cv8.exe";
   spectre1978
 
25 - 03.08.18 - 16:18
(24) да, верно, так работает. Значит, дело в том что там запускается стартер, который стартует другой процесс и завершается, чем намахивает run. А того, другого процесса run уже дожидаться не обязан.
   spectre1978
 
26 - 03.08.18 - 16:19
может, и со start /wait тогда прокатит?
   Вафель
 
27 - 03.08.18 - 16:19
тогда start /wait не нужне вообще ибо и так все ждется
   spectre1978
 
28 - 03.08.18 - 16:22
(27) см. (0). Прокатывает, кстати.
start /wait /D "C:\Program Files (x86)\1cv8\8.3.11.2867\bin\" 1cv8.exe
echo Тру-ля-ля
Надпись появляется после того как закрыли 1С
   spectre1978
 
29 - 03.08.18 - 16:23
значит, я ошибался и дело не в консольниках
   ILM
 
Модератор
30 - 03.08.18 - 16:25
Решил через планировщик, остальными способами не получалось, так как всегда висели или службы или cmd или 1С или другие программы.

Интерактивно получалось всяко разно, а удаленно только через планировщик.
   ILM
 
Модератор
31 - 03.08.18 - 16:31
Если удаленно, то в батниках и консоли нормально работают утилиты командной строки и скрипты всякие, а что посложнее или остается висеть, или требуют интерактивного участия.



Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует