Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Операционные системы общие вопросы
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2011, 15:27   #1
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию *.bat-файл в качестве инсталлятора

Здравствуйте.

Написал программу. Меня к ней попросили сделать инсталлятор. В принципе, из-за того, что писал на Java, он не нужен для самой программы, но просьба заключалась в том, чтобы не надо было ничего отдельно ставить и все можно было сделать одним файлом.
В голову пришла мысль написать bat'ник, но возникли проблемы:
1) Сначала решил автоматизировать создание БД и таблиц в ней, требуемы для программы. Был написан sql-скрипт:
Код:
CREATE DATABASE izh_media;
USE izh_media;
CREATE TABLE floor (id INT NOT NULL AUTO_INCREMENT, code TEXT CHARACTER SET utf8, state BOOL NOT NULL, PRIMARY KEY(id));
CREATE TABLE users (name TEXT CHARACTER SET utf8);
CREATE TABLE advertisers (id INT NOT NULL AUTO_INCREMENT, firm TEXT CHARACTER SET utf8, manager TEXT CHARACTER SET utf8, phone TEXT CHARACTER SET utf8, start DATE, finish DATE, place TEXT CHARACTER SET utf8, PRIMARY KEY(id));
QUIT
Он вызывается из *.bat-файла следующим образом:
Код:
mysql -uroot -p <new.sql
В качестве результата нет даже новой БД.

2) С запуском инсталляторов тоже беда.
Код:
start "jre-6u26-windows-i586.exe"
start "mysql-5.5.13-win32.msi"
После выполнения данных команд просто открываются две консоли, имеющие соответствующие имена и ничего не происходит.
Соответственно работает или нет следующий код я даже не проверял:
Код:
copy "C:\Program Files\Java\jre6\lib\ext" "mysql-connector-java-5.1.16-bin.jar"
Подскажите, пожалуйста, в чем проблема?

P.S. Опыт написания как bat'ников, так и sql-скриптов полдня (сегодня с утра с помощью гугла пытался разобраться).
Osanve вне форума Ответить с цитированием
Старый 30.06.2011, 13:12   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
После выполнения данных команд просто открываются две консоли, имеющие соответствующие имена и ничего не происходит.
Это такая фича у start. Если имя написать без кавычек - это имя файла, если в кавычках - заголовок. Если надо имя файла в кавычках, то
Код:
start "" "jre-6u26-windows-i586.exe"
Somebody вне форума Ответить с цитированием
Старый 30.06.2011, 15:57   #3
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

Somebody, спасибо за разъяснение. Запустить удалось. Остался вопрос по поводу запуска SQL-скрипта. С ним что-то не так или я его не так запускаю?
Osanve вне форума Ответить с цитированием
Старый 30.06.2011, 20:53   #4
Alex&(R)
Пользователь
 
Аватар для Alex&(R)
 
Регистрация: 15.05.2011
Сообщений: 14
По умолчанию

Попробуйте так:
Цитата:
mysql --user=root --password=root < new.sql
Где root - логин и пароль по умолчанию.
А, вообще, читайте хелп:
Цитата:
mysql --help
Alex&(R) вне форума Ответить с цитированием
Старый 02.07.2011, 11:27   #5
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Alex&(R) Посмотреть сообщение
Попробуйте так:
Не помогло. Буду дальше вкуривать то, что выдает гугл (с английским, просто, не очень дружу).
Osanve вне форума Ответить с цитированием
Старый 02.07.2011, 18:43   #6
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

И возник еще вопрос: Сейчас при вводе команд:
Код:
start jre-6u26-windows-i586.exe
start mysql-5.5.13-win32.msi
Инсталляторы и JRE и MySQL Server запускаются одновременно. Можно-ли как-то сделать поочередный запуск?
На C++ мне это удавалось сделать (после CreateProcess прописать WaitForSingleObject), но для запуска *.msi файлов требуется специфический хедер из MS VS. У меня Express Edition, и из-за того, что в коммерческих целях нельзя использовать даже не смотрел есть-ли он в наличии там.
Osanve вне форума Ответить с цитированием
Старый 03.07.2011, 02:08   #7
Alex&(R)
Пользователь
 
Аватар для Alex&(R)
 
Регистрация: 15.05.2011
Сообщений: 14
По умолчанию

В таком случае не используйте start, пишите так:
Код:
jre-6u26-windows-i586.exe
mysql-5.5.13-win32.msi
Насчет MySQL: mysql - это клиент, чтобы он выполнил SQL-запросы на локальном сервере, необходимо предварительно запустить этот самый сервер (daemon) mysqld с необходимыми параметрами.

Последний раз редактировалось Alex&(R); 03.07.2011 в 03:18.
Alex&(R) вне форума Ответить с цитированием
Старый 03.07.2011, 11:30   #8
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Alex&(R) Посмотреть сообщение
В таком случае не используйте start, пишите так:
Код:
jre-6u26-windows-i586.exe
mysql-5.5.13-win32.msi
Это помогло. Благодарю.

Цитата:
Сообщение от Alex&(R) Посмотреть сообщение
Насчет MySQL: mysql - это клиент, чтобы он выполнил SQL-запросы на локальном сервере, необходимо предварительно запустить этот самый сервер (daemon) mysqld с необходимыми параметрами.
Сама программа к MySQL коннектится без проблем. Но даже при вводе следующей строки в консоль MySQL:
Код:
mysql> source C:\"Documents and Settings"\Osanve\"Рабочий стол"\mirror\new.sql
Выскакивает 22-ая ошибка (гугл мне по ней ничего не смог толком сказать (может быть, конечно, я не так пытался гуглить)). Через батник вообще ничего не получается.
Osanve вне форума Ответить с цитированием
Старый 03.07.2011, 12:06   #9
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Можно-ли как-то сделать поочередный запуск?
Ещё вариант (например, если запускать GUIшную прогу из командной строки):
Код:
start /wait ...
Код:
для запуска *.msi файлов требуется специфический хедер из MS VS
Обычный ShellExecute или даже CreateProcess msiexec.exe.
Цитата:
Код:
mysql> source C:\"Documents and Settings"\Osanve\"Рабочий стол"\mirror\new.sql
Кавычки в топку и либо прямые слеши, либо обратные, но их экранировать надо.
Somebody вне форума Ответить с цитированием
Старый 03.07.2011, 15:44   #10
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Обычный ShellExecute или даже CreateProcess msiexec.exe.
Искал в msdn, нашел только то, что отписывал выше. Сам сначала пробовал через CreateProcess - поток не создавался. С ShellExecute, если честно, не разбирался.

Цитата:
Сообщение от Somebody Посмотреть сообщение
Кавычки в топку и либо прямые слеши, либо обратные, но их экранировать надо.
Благодарю.
Osanve вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Bat-файл Simbad Помощь студентам 1 03.04.2011 20:17
Bat файл wayne Софт 4 09.04.2010 19:27
bat файл Пепел Феникса Операционные системы общие вопросы 4 05.04.2010 16:23
bat-файл RipleR Помощь студентам 8 03.11.2009 18:28