Батник по запуску нескольких баз 1С 8 #736271


#0 by Vovka-x13
Нужно по расписанию запускать 1С несколько баз. В батниках плохо разбираюсь, написал следующее: @echo off echo Это начало запуска "C:Program Files1cv88.3.5.1248in1cv8.exe" CONFIG /S"192,,,,,Y123_SQL" echo Это конец exit Почти работает, но запускает только первая база, если закрыть её начинает запускаться следующая(выполняться след. команда). И после того как запустилась вторая и её закрыть выходит сообщение "Это конец". Что делаю не так? Странно как то работает ожидал, что все команды будут выполняться без каких либо моих телодвижений.
#1 by mikecool
используй несколько батников
#2 by Vovka-x13
Согласен))), но почему так не работает?
#3 by MiniMuk
попробуй call "C:Program Files..
#4 by mikecool
с чего решил, что должны выполняться все строки параллельно?
#5 by D_E_S_131
Наверное потому, что Windows многозадачная система. xD
#6 by Vladal
Используй команду Start @echo off echo Это начало запуска echo Это конец exit Если надо вызвать другой батник из батника, используй call call othet.bat С того, что батник запускает виндовые программы, которые выполняются в отдельном потоке. Это потому, что интерпретатор DOS однопотоковый. А товарищ в батнике 1С запускает в этом потоке и батник ждет завершение выполнения команды.
#7 by Vovka-x13
я не сказал параллельно, последовательно.
#8 by Vladal
А если бы запускать какую другую программу и ждать пока она завершится и после запускать следующую, то так: start wait program1.exe start wait program2.exe
#9 by Vovka-x13
Вот этот вариант работает @echo off
#10 by Fedor-1971
собственно и первый вариант будет работать, если при старте 1С ты проверишь некоторое условие и организуешь её закрытие. Схема примерно такая: ПриНачалеРаботыСистемы - проверяем ключ командной строки запуска, выполняем какую-то обработку, завершаем работу 1С. Если тебе просто надо запустить оговоренные тобой 1С, а закрывать их будет пользователь, то: start nowait ...
#11 by Fedor-1971
10+ Сорри, ошибся noWait нету в параметрах start. запусти cmd и введи start /?. Там ещё много какие параметры есть
#12 by Vovka-x13
Еще вопрос возник по батникам: :THEN Exit start "" "C:Program Files1cv88.3.5.1248in1cv8.exe" CONFIG /S"192,,,,,Y123" monitor off Exit Исходя из логики этого кода ищется процесс "1cv8.exe" если его нет, то запускается.  Но можно ли сделать поиск процесса не по имени, а по значению колонки которая именуется в диспетчере задач "Command line" т.к. процесс "1cv8.exe" может быть уже запущен, но мне нужно запустить именно эти команды для запуска 1с-ки.
#13 by ДенисЧ
tasklist не показывает командную строку процесса. Ищи стороннюю приблуду
#14 by Vovka-x13
Попробовал по названию окон, если название окна латинскими то работает, если русскими то нет. Как нибудь это побороть можно? tasklist /FI "WINDOWTITLE eq Конфигуратор*"
#15 by Fedor-1971
Set Process=1cv8.exe tasklist | Find /i "%Process%.exe" || (goto Else) Ничего не найдёшь убери в одном месте .ехе Попробуй залить результат работы TaskList в файл и посмотри кодировку, перед поиском по оному
#16 by Vovka-x13
не совсем понял последнее предложение.
#17 by Fedor-1971
Не конвейер: tasklist | Find /i "%Process%.exe" || (goto Else) А примерно так: TaskList >d:11.txt Find /i "%Process%.exe" d:11.txt
#18 by Fedor-1971
17+ кодировку d:11.txt проверь, Find по умолчанию использует вроде 866, потому и русские буквы не находятся.
#19 by Vovka-x13
TaskList /v >d:11.txt Find /i "Название окна по русски" d:11.txt Вроде работает
#20 by Fedor-1971
вот и хорошо
#21 by Vladal
А если бы запускать какую другую программу и ждать пока она завершится и после запускать следующую, то так: start wait program1.exe start wait program2.exe Это уже к vbs, коммандный процессор вроде такое не имеет.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С