антиКИЛЛЕР
Well-Known Member
- Регистрация
- 28.07.2011
- Сообщения
- 92
Итак, решил поизучать я mondoDB. Для этого на локалхост к денверу поставил это чудо.
Всё запустилось, всё заработало.
Но вот каждый раз стартовать и останавливать cmd командами сервер mongo мне не хочется.
А потому решил я написать bat файлики которые стартуют и останавливают сервер mongo вместе с denwer`ом.
Но возникли у меня проблемы, проблемы скорее моего низкого навыка написания bat файлов.
Подскажите как решить две следующие проблемы:
1 Проблема.
Есть bat файл запуска всего этого дела:
Всё бы ничего, но сервер mongo так и остаётся в этом окне cmd. Более того, это окно нельзя закрывать, т.к. при этом и сам сервер упадёт.
Вот как выглядит окно cmd:
Другими словами, после старта монго, этло окно превращается в интерфейс вывода сообщений от mongo сервера, и никакие команды в него, пока сервер mongo работает не принимаются.
Окошко это мешается, висит и закрывать его нельзя, что неудобно и не правктично. Тот же denwer решает подобную проблему добавлением иконок на панель задач. Но у них это сделано через pl скрипты, в которых я ни гугу, и я не понимаю как мне сделать так же и не знаю этого.
Как это можно сделать, как можно получающийся в результате окошко убрать в тот же трей, чтобы оно там висело и не мешалось среди открытых приложений?
2 Проблема.
Есть bat файл остановки всего этого дела:
Суть проблемы в том, что после вызова файла D:\webDevelop\mongodb\bin\mongo.exe данные файл открывается на принятие команд. Фактически mongo.exe захватывает управление и пока не получена команда exit выполняется.
Если запустить такой bat получим следующую картину:
И так фисит, пока я ручками не ввиду
use admin
db.shutdownServer()
exit
После чего дальше уже выполняется всё что нужно и получаем конечный результат:
Вопрос: как автоматизировать передачу этих трёх комант скрипту mongo.exe после его запуска?
Буду невероятно признателен тем, кто подкскажет решение этих проблем))
Всё запустилось, всё заработало.
Но вот каждый раз стартовать и останавливать cmd командами сервер mongo мне не хочется.
А потому решил я написать bat файлики которые стартуют и останавливают сервер mongo вместе с denwer`ом.
Но возникли у меня проблемы, проблемы скорее моего низкого навыка написания bat файлов.
Подскажите как решить две следующие проблемы:
1 Проблема.
Есть bat файл запуска всего этого дела:
Код:
@ echo OFF
echo Стартуем Денвер...
call D:\webDevelop\Denwer\denwer\Run.exe
echo Готово
echo Стартуем mongoDB...
call D:\webDevelop\mongodb\bin\mongod.exe --dbpath=D:\webDevelop\mongodb\
exit
Вот как выглядит окно cmd:
Другими словами, после старта монго, этло окно превращается в интерфейс вывода сообщений от mongo сервера, и никакие команды в него, пока сервер mongo работает не принимаются.
Окошко это мешается, висит и закрывать его нельзя, что неудобно и не правктично. Тот же denwer решает подобную проблему добавлением иконок на панель задач. Но у них это сделано через pl скрипты, в которых я ни гугу, и я не понимаю как мне сделать так же и не знаю этого.
Как это можно сделать, как можно получающийся в результате окошко убрать в тот же трей, чтобы оно там висело и не мешалось среди открытых приложений?
2 Проблема.
Есть bat файл остановки всего этого дела:
Код:
@ echo OFF
echo Останавливаем mongoDB...
call D:\webDevelop\mongodb\bin\mongo.exe
:: call D:\webDevelop\mongodb\bin\mongo.exe
:: Такой вариант не работает, аргументами передать не получается:
:: call D:\webDevelop\mongodb\bin\mongo.exe "use admin" "db.shutdownServer()" "exit"
:: Так не работает, перенаправляет просто в файлы:
:: call D:\webDevelop\mongodb\bin\mongo.exe
:: >use admin
:: >db.shutdownServer()
:: >exit
:: Такой вариант тоже не прокатывает, т.к. перенаправление вызовов осуществляется уже после того, как mongo.exe через call завершил работу:
:: Если вместо call использовать start, то тоже не работает((
:: call D:\webDevelop\mongodb\bin\mongo.exe
:: >D:\webDevelop\mongodb\bin\mongo.exe use admin
:: >D:\webDevelop\mongodb\bin\mongo.exe db.shutdownServer()
:: >D:\webDevelop\mongodb\bin\mongo.exe exit
:: Ну и топорный вариант, понятное дело, так же не работает:
:: call D:\webDevelop\mongodb\bin\mongo.exe
:: use admin
:: db.shutdownServer()
:: exit
echo Готово
echo Останавливаем Денвер...
call D:\webDevelop\Denwer\denwer\Stop.exe
echo Готово
pause
Если запустить такой bat получим следующую картину:
И так фисит, пока я ручками не ввиду
use admin
db.shutdownServer()
exit
После чего дальше уже выполняется всё что нужно и получаем конечный результат:
Вопрос: как автоматизировать передачу этих трёх комант скрипту mongo.exe после его запуска?
Буду невероятно признателен тем, кто подкскажет решение этих проблем))