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

Компьютерный форум 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

 

Ветеран


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

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


Цитата BigBoo:
а скажем через 5 секунд после запуска процесса "Prog". »
Не менее 5 секунд:
Код: Выделить весь код
>nul ping.exe -n 6 127.0.0.1
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:25, 30-03-2012 | #11



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

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


Аватара для BigBoo

Старожил


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


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

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


Почему-то данная конструкция не срабатывает вкупе с nircmd.exe, возврата на :Repeat не происходит:
Код: Выделить весь код
start "" /b "%ProgramFiles%\Opera\opera.exe"
:Repeat
    >nul ping.exe -n 2 127.0.0.1
    nircmd.exe win close title "Добро пожаловать" || goto :Repeat
exit
Есть ли способ подружиться с nircmd.exe или как-то по другому реализовать закрытие окна после запуска программы, именно окна, а не самого приложения?

Отправлено: 00:58, 31-03-2012 | #12


Ветеран


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

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


Цитата BigBoo:
Почему-то данная конструкция не срабатывает вкупе с nircmd.exe, возврата на :Repeat не происходит »
И не должна. «taskkill.exe» устанавливает код возврата по результатам своей работы. «NirCmd.exe» — нет [замечу, что, в принципе, можно сделать это вручную командой «returnval [Return Value]»; но Вам оно не подойдёт].

Я не видел в Opera окна «Добро пожаловать». Опишите, какую версию Вы использовали.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:42, 31-03-2012 | #13


Аватара для BigBoo

Старожил


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


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

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


Просто интересно разобраться, как закрыть окно. В данном случае оно возникает, если в настройках Ореры поставить: При запуске - показывать окно запуска:

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


Ветеран


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

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


BigBoo, закрытие этого окна вызовет отмену запуска «Opera». Вам именно это надо?

E:\Песочница\0132\Script.ncl:
Код: Выделить весь код
exec show "~$folder.programfiles$\Opera\opera.exe"
wait 5000
loop 5 1000 win close title "Добро пожаловать"
Вызов:
Код: Выделить весь код
nircmdc.exe script "E:\Песочница\0132\Script.ncl"
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:11, 31-03-2012 | #15


Аватара для BigBoo

Старожил


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


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

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


Вопрос такой: Устанавливается программа
Код: Выделить весь код
start "" /wait "WebcamMax-7.7.2.2.MultiLanguage.Setup.exe" /S
Во время установки на Win7 выскакивает окно "Безопасность Windows" с вопросом о продолжении установки. Нажать кнопку "Установить" в окне можно так
Код: Выделить весь код
nircmd.exe win dlgclick "Безопасность Windows" ok
Нужен скрипт, который выполнит команду nircmd.exe во время время установки программы и отследит завершение процесса её установки. Чтобы следующие команды выполнились только после установки программы.

Отправлено: 16:42, 08-03-2013 | #16


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


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

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


Подскажите плиз.
Использую закрытие процесса перед запуском установки:
Код: Выделить весь код
:Repeat
 >nul ping.exe -n 2 127.0.0.1
 taskkill.exe /f /im "engine.exe" || goto :Repeat
Надо, чтобы игнорировалось сообщение "Не удаётся найти процесс", если процесс не запущен.
Или по другому - команда завершения процесса выполнялась, только если он запущен.

Отправлено: 09:02, 17-11-2015 | #17


Ветеран


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

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


Код: Выделить весь код
:Repeat
 >nul ping.exe -n 2 127.0.0.1
 2>nul taskkill.exe /f /im "engine.exe" || goto :Repeat

Отправлено: 09:19, 17-11-2015 | #18


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


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

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


Georgio, так не выполняется следующая команда запуска установки.
Зависает с открытой ком строкой.

Отправлено: 09:33, 17-11-2015 | #19


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


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

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


Спасибо всем!!!
Получилось так:
Код: Выделить весь код
@echo off
setlocal ENABLEDELAYEDEXPANSION
Set Process=engine
  tasklist | Find /i "engine.exe" || (goto Else)
:THEN
  :Repeat
    >nul ping.exe -n 2 127.0.0.1
    taskkill.exe /f /im "engine.exe" || goto :Repeat
:ELSE
  start /wait "Uninstall" Uninstall.exe

Последний раз редактировалось megane68, 17-11-2015 в 12:58.


Отправлено: 12:37, 17-11-2015 | #20



Компьютерный форум 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




 
Переход