创建 .bat 文件来执行 mysql 和其他命令

创建 .bat 文件来执行 mysql 和其他命令

我正在寻找一种方法来减少检查 mysql 条目和其他内容所需的输入量。例如,我想创建一个 .bat 文件来执行以下命令。

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

问题是,在初始 mysql -u user -p 之后,写下的其余命令都不会执行。在调用 mysql 或其他程序之后,是否可以继续运行命令,这些程序似乎将其前缀(?) 添加到命令的开头 (mysql>)。我不太熟悉这些术语,所以如果听起来令人困惑,请原谅我。我也想将同样的概念用于其他事物。

非常感谢您的帮助,谢谢。

答案1

您可以以批处理模式运行 mysql,如文档

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

基本上,您使用包含所有命令的文件作为输入参数 - mysql 将执行该文件的内容。


编辑:如果您想即时构建查询,您可以始终让批处理文件将查询写入临时文件,然后您可以加载该文件以供 mysql 执行。例如:

echo show tables from test > C:\path\to\file.sql
mysql -h host -u user -p < C:\path\to\file.sql

答案2

运行mysql-e 选项

mysql -h host -u user -p -e 'SHOW TABLES FROM test'

答案3

也许您可能想尝试一下该论坛中其他问题中出现的一个小技巧(不幸的是已被删除)。

您可以直接在命令下方的行中插入命令的输入,然后执行该文件(不是作为批处理文件),而是作为 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

如果您执行此测试,请报告结果...

安东尼奥

答案4

你可以写如下内容

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

相关内容