Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выполнение следующей команды, после завершения определенного процесса

Ответить
Настройки темы
CMD/BAT - [решено] Выполнение следующей команды, после завершения определенного процесса

Новый участник


Сообщения: 5
Благодарности: 1


Конфигурация

Профиль | Отправить PM | Цитировать


Нужно сделать скрипт для автоматической установки Oracle 11g. Найден мануал, в котором описано что и за чем делать.
Запустить setup с ключами, запустить .bat из директории, куда установится Oracle(он появится только после установки), и скопировать файл в определенную директорию.
Всё бы ничего. Скрипт простейший на первый взгляд. Простое постепенное выполнение команд.
Однако, после запуска setup.exe, он запускает процесс java.exe, а сам исчезает. Процесс java.exe и занимается установкой программы. НО cmd считает, что после исчезновения из списка процессов процесса setup.exe - программа установилась, и продолжает по списку выполнять команды, т.е. пытается найти .bat и запустить его, естественно его не находит, потому что программа еще только устанавливается.
Подскажите, пожалуйста, как сделать, чтобы вторая команда (запуск .bat) происходила после завершения процесса установки(когда отработает не setup.exe, a java.exe).

Заранее благодарю за любые подсказки и наводки.

Отправлено: 16:34, 12-01-2011

 

Старожил


Сообщения: 175
Благодарности: 119

Профиль | Отправить PM | Цитировать


Можно так:
Код: Выделить весь код
start /wait "" jawa.exe
my.bat
По желанию еще проверку добавить можно:
Код: Выделить весь код
start /wait "" jawa.exe
tasklist | find "jawa.exe" || my.bat
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:24, 12-01-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


SendMessage, не тот случай, т.к. java.exe запускается не батником

Weterok, отследить активность процесса вкупе со всеми дочерними нетривиальная задача, т.к. это можно реализовать только средствами самой запускающей утилиты, но START и подобные не имеют такой функциональности... однажды приходилось решать подобное в AutoIT - это проще, чем писать свой StartWait.Exe, если есть интерес линк на ветку форума

штатными средствами - ожидание завершения процесса,
но это не панацея, т.к. java.exe может быть запущен и другими программами
Код: Выделить весь код
start /wait "" setup.exe
:loop
ping -n 1 127.0.0.1 >nul
tasklist|find /i "java.exe">nul&& goto loop
то же, с использованием NirCmd:
Код: Выделить весь код
start /wait "" setup.exe
nircmd waitprocess java.exe
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:07, 13-01-2011 | #3


Новый участник


Сообщения: 5
Благодарности: 1

Профиль | Отправить PM | Цитировать


amel27,
делается для установки на чистый компьютер, где java.exe других не должно быть. Как вариант на первое время - очень даже. Работает, и это главное. Спасибо огромное за совет и за ссылку! начну копание вглубь этой проблемы с нее.

Отправлено: 13:27, 13-01-2011 | #4


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Weterok:
делается для установки на чистый компьютер »
для паузы через PING должна быть настроена сеть, иначе паузу придется реализовывать другим способом
статья: Пауза в пакетном файле

Отправлено: 13:40, 13-01-2011 | #5


Новый участник


Сообщения: 5
Благодарности: 1

Профиль | Отправить PM | Цитировать


Опять-таки, устанавливаться это счастье будет через WDS естественно по сети, поэтому косяка быть не должно. Я только что проверила - работает. Спасибо еще раз !

Отправлено: 13:46, 13-01-2011 | #6


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Задача такая. Происходит установка программы, по завершении установки программа "Prog" запускается, но как таковое приложение "Установка" ещё висит в памяти, и установка завершается, когда только закроешь окно запустившейся проги "Prog".

Хотелось бы, чтобы окно программы закрывалось автоматом скриптом, но так как по сути процесс "Установка" ещё запущен, когда это окно открывается, скрипт такого рода не срабатывает:
Код: Выделить весь код
START "" /WAIT "Установка"
TASKKILL /F /IM "Prog"
Помогите решить вопрос?

Отправлено: 16:11, 24-03-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Как-то так:
Код: Выделить весь код
start "" "setup.exe"
:Repeat
    >nul ping.exe -n 2 127.0.0.1
    taskkill.exe /f /im "Prog.exe" || goto :Repeat
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:25, 24-03-2012 | #8


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Iska, спасибо, работает.

Отправлено: 17:17, 24-03-2012 | #9


Аватара для BigBoo

Старожил


Автор проектов


Сообщения: 474
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата BigBoo:
Задача такая. Происходит установка программы, по завершении установки программа запускается, но как таковое приложение "Установка" ещё висит в памяти, и установка завершается, когда только закроешь окно запустившейся проги "Prog".
Хотелось бы, чтобы окно программы закрывалось автоматом скриптом »
Цитата Iska:
Как-то так:
Код: Выделить весь код
start "" "setup.exe"
:Repeat
 >nul ping.exe -n 2 127.0.0.1
 taskkill.exe /f /im "Prog.exe" || goto :Repeat
»
Теперь задача такая же, только команда taskkill.exe /f /im "Prog.exe" должна сработать не сразу, а скажем через 5 секунд после запуска процесса "Prog". Подскажите, как реализовать?

Отправлено: 14:00, 30-03-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выполнение следующей команды, после завершения определенного процесса

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Медиа - программа для выключения звука от определенного процесса Shishelbeh Программное обеспечение Windows 1 30-03-2011 23:42
.NET - Ожидание завершения процесса Efsey Программирование и базы данных 11 24-11-2010 19:16
CMD/BAT - [решено] Как сдедать выполнение команды только после выполнения куска кода? Ingolder Скриптовые языки администрирования Windows 8 01-09-2010 22:52
Как прописать в самбе выполнение определенного скрипта kazarkin Общий по Linux 14 20-07-2006 09:09
Прерывание процесса завершения работы ПК Greyman Хочу все знать 5 17-03-2004 06:14




 
Переход