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