Создание.bat-файл для выполнения mysql и других команд

Я ищу способ уменьшить количество ввода, которое я делаю, чтобы проверить записи mysql и другие вещи.
Например, я хотел создать .bat файл, который будет выполнять следующие команды.

mysql -u user -p
*enter in the password*
USE databasename
SELCT * FROM table;

проблема в том, что после начального mysql-u user-p остальные записанные команды не выполняются. Возможно ли продолжить выполнение команд после вызова чего-то вроде mysql или других программ, которые, кажется, добавляют свой префикс(?) к началу команд (mysql>). Я не очень хорошо знаком с терминологией, поэтому простите меня, если это звучит запутанно. Я хотел бы использовать такую же концепцию и для других вещей.

помощь очень ценится,
Благодаря.

9
задан SikhWarrior
11.01.2023 8:16 Количество просмотров материала 3040
Распечатать страницу

4 ответа

вы можете запустить mysql в пакетном режиме, как указано в документация.

mysql -h host -u user -p < batch-file

в основном вы используете файл, содержащий все ваши команды в качестве входного параметра-mysql выполнит содержимое этого файла.


Edit: если вы хотите создать свой запрос на лету, вы всегда можете иметь свой пакетный файл записать запрос во временный файл, который затем можно загрузить для выполнения mysql. Например:

echo show tables from test > C:\path\to\file.sql
mysql -h host -u user -p < C:\path\to\file.sql
6
отвечен Alec Sanger 2023-01-12 16:04

возможно, вы захотите попробовать небольшой трюк, который возник из другого вопроса на этом форуме (который был удален, к сожалению).

вы можете вставить входные данные для команды непосредственно в строки под командой, а затем выполнить файл не как пакетный файл, а как входной por cmd.exe (это похоже на документ в Unix). Например:

сценарий.TXT:

@echo off
mysql -u user -p
*enter in the password*
USE databasename
SELCT * FROM table;
EXIT
echo Exit from MYSQL...

выполнить предыдущий "скрипт" следующим образом:

cmd < сценарий.TXT

Если вы выполняете этот тест, то пожалуйста сообщите результат...

Antonio

2
отвечен Aacini 2023-01-12 18:21

Run mysql С -e опция:

mysql -h host -u user -p -e 'SHOW TABLES FROM test'
2
отвечен arcadius 2023-01-12 20:38

вы могли бы написать что-то вроде этого

mysql -u dbUsername yourDatabase -e "SELECT * FROM table;"

или для запуска повторяющихся задач создать runtasks.bat-файл, сохранить в корне вашего проекта, а затем написать cmd задачи внутри

mysql -u dbUser -e "DROP DATABASE IF EXISTS testDatabase;"
mysql -u dbUser -e "CREATE DATABASE testDatabase;"

php index.php migration latest #

cd application\tests
phpunit
-1
отвечен Gpak 2023-01-12 22:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх