wiki:windows:windows-cmd-script
差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
wiki:windows:windows-cmd-script [2019/08/20 22:42] – 创建 colin | wiki:windows:windows-cmd-script [2023/01/03 15:25] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 批处理常用脚本 ====== | + | ====== 批处理常用脚本:MYSQL相关 |
+ | |||
+ | 本示例是 MySQL 安装、卸载、数据导入、数据导出 相关脚本。 | ||
+ | |||
+ | 创建了环境变量 %MYSQL_HOME% 用于标识程序已安装。 | ||
+ | |||
+ | 以下脚本下载后,请使用ANSI编码保存,否则中文乱码。 | ||
+ | |||
+ | ===== 样例1:登陆MySQL ===== | ||
+ | |||
+ | 说明:登陆前,判断是否已安装MySQL,如果未安装,则调用样例2脚本安装并启动服务,安装后,会使用默认用户密码登陆MySQL | ||
+ | |||
+ | <code batch 00_run.bat> | ||
+ | @echo off | ||
+ | |||
+ | echo. | ||
+ | echo %date% %time% | ||
+ | echo. | ||
+ | |||
+ | SET curDir=%~dp0 | ||
+ | |||
+ | echo 当前路径为 %curDir% | ||
+ | echo. | ||
+ | |||
+ | SC QUERY MySQL > NUL | ||
+ | |||
+ | rem 如果服务存在,跳转至 serverexist 标签 | ||
+ | if ERRORLEVEL 1060 goto servernotexist | ||
+ | goto serverexist | ||
+ | |||
+ | : | ||
+ | |||
+ | echo 将自动使用默认账户登录MYSQL,请注意及时修改密码 | ||
+ | echo. | ||
+ | pause | ||
+ | " | ||
+ | |||
+ | goto end | ||
+ | |||
+ | : | ||
+ | rem echo 开始执行安装 | ||
+ | echo MySQL 服务无效,将要自动执行安装 | ||
+ | echo. | ||
+ | call 01_install_then_run_server.bat | ||
+ | echo. | ||
+ | goto end | ||
+ | |||
+ | :end | ||
+ | pause | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 样例2:安装并启动MYSQL服务 ===== | ||
+ | |||
+ | 设置my.ini、安装 MySQL 服务然后启动服务、设置 MySQL_HOME 环境变量 | ||
+ | |||
+ | (如果已有服务,则判断是否进行卸载) | ||
+ | |||
+ | <code batch 01_install_then_run_server.bat> | ||
+ | @echo off | ||
+ | |||
+ | echo. | ||
+ | echo %date% %time% | ||
+ | echo. | ||
+ | |||
+ | SET curDir=%~dp0 | ||
+ | |||
+ | echo 当前路径为 %curDir% | ||
+ | echo. | ||
+ | |||
+ | SC QUERY MySQL > NUL | ||
+ | |||
+ | rem 如果服务存在,跳转至 serverexist 标签 | ||
+ | if ERRORLEVEL 1060 goto servernotexist | ||
+ | goto serverexist | ||
+ | |||
+ | : | ||
+ | echo 服务已存在,程序将会卸载该服务,然后再继续安装。 | ||
+ | echo. | ||
+ | set /p choice=请按 Y 然后回车继续执行安装,或者按任意键退出: | ||
+ | echo. | ||
+ | if /i " | ||
+ | goto end | ||
+ | : | ||
+ | rem 继续安装 | ||
+ | echo ********************************************************** | ||
+ | echo 卸载已有服务 | ||
+ | echo. | ||
+ | net stop MySQL | ||
+ | sc delete MySQL | ||
+ | goto beginsetup | ||
+ | |||
+ | : | ||
+ | rem echo 开始执行安装 | ||
+ | goto beginsetup | ||
+ | |||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo ********************************************************** | ||
+ | echo. | ||
+ | echo 开始安装 MySQL (共3步) | ||
+ | echo. | ||
+ | rem pause | ||
+ | echo 1. 设置配置文件 | ||
+ | echo. | ||
+ | rem 从 my_default.ini 中拷贝文本至my.ini | ||
+ | set mydefaultini=" | ||
+ | set myini=" | ||
+ | |||
+ | rem 清空文件,重新写入 | ||
+ | if exist %myini% ( | ||
+ | del %myini% | ||
+ | ) | ||
+ | |||
+ | rem usebackq 支持文件路径中带空格 | ||
+ | for /f " | ||
+ | rem 追加内容 | ||
+ | echo %%i %%j>> | ||
+ | ) | ||
+ | set line1=basedir=" | ||
+ | echo %line1%>> | ||
+ | set line2=datadir=" | ||
+ | echo %line2%>> | ||
+ | |||
+ | echo 配置文件配置完成 | ||
+ | echo. | ||
+ | echo 2. 安装 MySQL 服务 | ||
+ | echo. | ||
+ | cd bin | ||
+ | mysqld install | ||
+ | echo MySQL 服务安装完成 | ||
+ | echo. | ||
+ | echo 3. 正在启动 MySQL 服务 | ||
+ | echo. | ||
+ | net start mysql | ||
+ | echo MySQL 服务启动完成 | ||
+ | echo. | ||
+ | echo ********************************************************** | ||
+ | echo 正在设置环境变量 | ||
+ | echo. | ||
+ | rem 左单引号,能够支持包含空格的路径 | ||
+ | set environment_path=" | ||
+ | setx /M MYSQL_HOME %environment_path% | ||
+ | echo 已设置环境变量 MYSQL_HOME = %environment_path% | ||
+ | echo. | ||
+ | echo ********************************************************** | ||
+ | echo. | ||
+ | echo 请查阅提示信息 | ||
+ | cd ../ | ||
+ | call ReadMeAfterInstalled.txt | ||
+ | echo. | ||
+ | echo 将自动使用默认账户登录MYSQL,请注意及时修改密码 | ||
+ | echo. | ||
+ | pause | ||
+ | |||
+ | " | ||
+ | echo. | ||
+ | :end | ||
+ | pause | ||
+ | </ | ||
+ | |||
+ | ===== 样例3:停止并删除服务 ===== | ||
+ | |||
+ | <code batch 02_stop_then_del_server.bat> | ||
+ | @echo off | ||
+ | |||
+ | SC QUERY MySQL > NUL | ||
+ | if ERRORLEVEL 1060 goto servernotexist | ||
+ | goto serverexist | ||
+ | |||
+ | |||
+ | : | ||
+ | |||
+ | net stop MySQL | ||
+ | sc delete MySQL | ||
+ | |||
+ | goto goon | ||
+ | |||
+ | : | ||
+ | echo server not exist | ||
+ | goto goon | ||
+ | |||
+ | :goon | ||
+ | |||
+ | if exist my.ini ( | ||
+ | del my.ini | ||
+ | ) | ||
+ | |||
+ | echo ********************************************************** | ||
+ | echo 正在删除环境变量 | ||
+ | echo. | ||
+ | setx /M MYSQL_HOME "" | ||
+ | REG delete " | ||
+ | echo 已删除环境变量 MYSQL_HOME | ||
+ | echo. | ||
+ | echo ********************************************************** | ||
+ | |||
+ | echo uninstalled. | ||
+ | |||
+ | pause | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 样例4:导入数据 ===== | ||
+ | |||
+ | 如果 TestDatabase 数据库存在,首先将其销毁。 | ||
+ | |||
+ | 然后创建 TestDatabase 数据库,向该数据库导入脚本所在目录下的 TestDatabase.sql 数据 | ||
+ | |||
+ | <code batch 01_build_data.bat> | ||
+ | @echo off | ||
+ | echo. | ||
+ | echo %date% %time% | ||
+ | echo. | ||
+ | |||
+ | SET curDir=%~dp0 | ||
+ | |||
+ | echo 当前路径为 %curDir% | ||
+ | echo. | ||
+ | |||
+ | if /i " | ||
+ | goto mysqlexist | ||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo MYSQL_HOME 环境变量有效 | ||
+ | echo %MYSQL_HOME% | ||
+ | echo. | ||
+ | goto dothing | ||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo MYSQL_HOME 环境变量无效,请检查 | ||
+ | echo. | ||
+ | goto end | ||
+ | |||
+ | :dothing | ||
+ | |||
+ | set databasename=TestDatabase | ||
+ | set sqlfile=%curDir%tempimportsql.sql | ||
+ | rem sql脚本文件名称与数据库名称一致 | ||
+ | set importsql=%curDir%%databasename%.sql | ||
+ | |||
+ | rem 创建sql脚本 | ||
+ | if exist %sqlfile% ( | ||
+ | del %sqlfile% | ||
+ | ) | ||
+ | echo drop database if exists %databasename%;>> | ||
+ | echo create database %databasename%;>> | ||
+ | echo use %databasename%;>> | ||
+ | echo source %importsql%>> | ||
+ | |||
+ | echo 生成脚本成功,开始执行导入 | ||
+ | echo. | ||
+ | pause | ||
+ | %MYSQL_HOME%bin\mysql -h localhost -u root -pmysqld< | ||
+ | echo. | ||
+ | echo 数据导入成功 | ||
+ | echo. | ||
+ | |||
+ | rem 删除sql脚本 | ||
+ | if exist %sqlfile% ( | ||
+ | del %sqlfile% | ||
+ | ) | ||
+ | |||
+ | :end | ||
+ | pause | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 样例5:删除数据库 ===== | ||
+ | |||
+ | 删除 TestDatabase 数据库 | ||
+ | |||
+ | <code batch 02_destroy_data.bat> | ||
+ | @echo off | ||
+ | echo. | ||
+ | echo %date% %time% | ||
+ | echo. | ||
+ | |||
+ | SET curDir=%~dp0 | ||
+ | |||
+ | echo 当前路径为 %curDir% | ||
+ | echo. | ||
+ | |||
+ | if /i " | ||
+ | goto mysqlexist | ||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo MYSQL_HOME 环境变量有效 | ||
+ | echo %MYSQL_HOME% | ||
+ | echo. | ||
+ | goto dothing | ||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo MYSQL_HOME 环境变量无效,请检查 | ||
+ | echo. | ||
+ | goto end | ||
+ | |||
+ | :dothing | ||
+ | |||
+ | set databasename=TestDatabase | ||
+ | set sqlfile=%curDir%tempimportsql.sql | ||
+ | |||
+ | rem 创建sql脚本 | ||
+ | if exist %sqlfile% ( | ||
+ | del %sqlfile% | ||
+ | ) | ||
+ | echo drop database if exists %databasename%;>> | ||
+ | |||
+ | echo 生成脚本成功,将要删除数据库: %databasename% | ||
+ | echo. | ||
+ | pause | ||
+ | %MYSQL_HOME%bin\mysql -h localhost -u root -pmysqld< | ||
+ | echo. | ||
+ | echo 执行成功 | ||
+ | echo. | ||
+ | |||
+ | rem 删除sql脚本 | ||
+ | if exist %sqlfile% ( | ||
+ | del %sqlfile% | ||
+ | ) | ||
+ | |||
+ | :end | ||
+ | pause | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 样例6:数据导出 ===== | ||
+ | |||
+ | 将 TestDatabase 数据库中的数据导出到 TestDatabase_export.sql | ||
+ | |||
+ | <code batch 03_export_data.bat> | ||
+ | @echo off | ||
+ | echo. | ||
+ | echo %date% %time% | ||
+ | echo. | ||
+ | |||
+ | SET curDir=%~dp0 | ||
+ | |||
+ | echo 当前路径为 %curDir% | ||
+ | echo. | ||
+ | |||
+ | if /i " | ||
+ | goto mysqlexist | ||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo MYSQL_HOME 环境变量有效 | ||
+ | echo %MYSQL_HOME% | ||
+ | echo. | ||
+ | goto dothing | ||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo MYSQL_HOME 环境变量无效,请检查 | ||
+ | echo. | ||
+ | goto end | ||
+ | |||
+ | :dothing | ||
+ | |||
+ | set databasename=TestDatabase | ||
+ | set databasefile=%MYSQL_HOME%data\%databasename%\db.opt | ||
+ | rem 判断数据库目录是否存在,如果存在则继续进行删除 | ||
+ | if exist %databasefile% goto dodelete | ||
+ | goto giveupdelete | ||
+ | |||
+ | : | ||
+ | echo. | ||
+ | echo 警告:数据库不存在,无法导出,请检查。 | ||
+ | echo. | ||
+ | goto end | ||
+ | |||
+ | :dodelete | ||
+ | |||
+ | set sqlfile=%databasename%_export.sql | ||
+ | rem 创建sql脚本 | ||
+ | if exist %sqlfile% ( | ||
+ | del %sqlfile% | ||
+ | ) | ||
+ | |||
+ | echo. | ||
+ | echo 将要备份数据库 %databasename% 到 %sqlfile% | ||
+ | echo. | ||
+ | pause | ||
+ | %MYSQL_HOME%bin\mysqldump -h localhost -u root -pmysqld | ||
+ | echo. | ||
+ | echo 执行成功 | ||
+ | echo. | ||
+ | |||
+ | echo *************************** | ||
+ | echo. | ||
+ | echo 如需使用 01_build_data.bat 执行导入, | ||
+ | echo. | ||
+ | echo 请将 %sqlfile% 命名为 %databasename%.sql | ||
+ | echo. | ||
+ | echo *************************** | ||
+ | |||
+ | :end | ||
+ | pause | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | |||
wiki/windows/windows-cmd-script.1566312121.txt.gz · 最后更改: 2023/01/03 15:24 (外部编辑)