九溪

溪水润知林,滴露启慧心

用户工具

站点工具


wiki:windows:windows-cmd-script

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
wiki:windows:windows-cmd-script [2019/08/20 22:42] – 创建 colinwiki: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 
 + 
 +:serverexist 
 + 
 +echo 将自动使用默认账户登录MYSQL,请注意及时修改密码 
 +echo. 
 +pause 
 +"%curDir%bin\mysql" -h localhost -u root -pmysqld 
 + 
 +goto end 
 +  
 +:servernotexist 
 +rem echo 开始执行安装 
 +echo MySQL 服务无效,将要自动执行安装 
 +echo. 
 +call 01_install_then_run_server.bat 
 +echo. 
 +goto end 
 +  
 +:end 
 +pause 
 + 
 +</code> 
 + 
 +===== 样例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 
 + 
 +:serverexist 
 +echo 服务已存在,程序将会卸载该服务,然后再继续安装。 
 +echo. 
 +set /p  choice=请按 Y 然后回车继续执行安装,或者按任意键退出: 
 +echo. 
 +if /i "%choice%" == "Y" goto choice_y_because_server_exist 
 +    goto end  
 +:choice_y_because_server_exist 
 +rem 继续安装 
 +echo ********************************************************** 
 +echo 卸载已有服务 
 +echo.  
 +net stop MySQL 
 +sc delete MySQL 
 +goto beginsetup 
 + 
 +:servernotexist 
 +rem echo 开始执行安装 
 +goto beginsetup 
 + 
 + 
 +:beginsetup 
 +echo. 
 +echo ********************************************************** 
 +echo. 
 +echo 开始安装 MySQL (共3步) 
 +echo. 
 +rem pause 
 +echo 1. 设置配置文件 
 +echo. 
 +rem 从 my_default.ini 中拷贝文本至my.ini 
 +set mydefaultini="%curDir%my_default.ini" 
 +set myini="%curDir%my.ini" 
 +       
 +rem 清空文件,重新写入 
 +if exist %myini% ( 
 +    del %myini% 
 +    )  
 + 
 +rem usebackq 支持文件路径中带空格 
 +for /f "usebackq tokens=1,* delims= " %%i in (%mydefaultini%) do ( 
 + rem 追加内容 
 + echo %%i %%j>>%myini%   
 + )  
 +set line1=basedir="%curDir%" 
 +echo %line1%>>%myini%  
 +set line2=datadir="%curDir%data" 
 +echo %line2%>>%myini%  
 + 
 +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="%curDir% 
 +setx /M MYSQL_HOME %environment_path% 
 +echo 已设置环境变量 MYSQL_HOME = %environment_path% 
 +echo. 
 +echo ********************************************************** 
 +echo. 
 +echo 请查阅提示信息 
 +cd ../ 
 +call ReadMeAfterInstalled.txt 
 +echo.  
 +echo 将自动使用默认账户登录MYSQL,请注意及时修改密码 
 +echo. 
 +pause 
 + 
 +"%curDir%bin\mysql" -h localhost -u root -pmysqld 
 +echo. 
 +:end 
 +pause 
 +</code> 
 + 
 +===== 样例3:停止并删除服务 ===== 
 + 
 +<code batch 02_stop_then_del_server.bat> 
 +@echo off 
 + 
 +SC QUERY MySQL > NUL 
 +if ERRORLEVEL 1060 goto servernotexist 
 +   goto serverexist 
 + 
 +    
 +:serverexist    
 + 
 +net stop MySQL 
 +sc delete MySQL 
 + 
 +goto goon 
 + 
 +:servernotexist 
 +echo server not exist 
 +goto goon 
 + 
 +:goon 
 + 
 +if exist my.ini ( 
 +    del my.ini 
 +    ) 
 +  
 +echo ********************************************************** 
 +echo 正在删除环境变量 
 +echo. 
 +setx /M MYSQL_HOME "" 
 +REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V MYSQL_HOME 
 +echo 已删除环境变量 MYSQL_HOME 
 +echo. 
 +echo ********************************************************** 
 + 
 +echo uninstalled. 
 +  
 +pause 
 + 
 +</code> 
 + 
 + 
 +===== 样例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 "%MYSQL_HOME%" == "" goto mysqlnotexist 
 +    goto mysqlexist 
 +  
 +:mysqlexist 
 +echo.   
 +echo MYSQL_HOME 环境变量有效 
 +echo %MYSQL_HOME% 
 +echo. 
 +goto dothing 
 + 
 +:mysqlnotexist 
 +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%;>>%sqlfile%  
 +echo create database %databasename%;>>%sqlfile%  
 +echo use %databasename%;>>%sqlfile%  
 +echo source %importsql%>>%sqlfile%  
 + 
 +echo 生成脚本成功,开始执行导入 
 +echo.  
 +pause  
 +%MYSQL_HOME%bin\mysql -h localhost -u root -pmysqld<%sqlfile% 
 +echo. 
 +echo 数据导入成功 
 +echo. 
 + 
 +rem 删除sql脚本 
 +if exist %sqlfile% ( 
 +    del %sqlfile% 
 +    ) 
 + 
 +:end 
 +pause 
 + 
 + 
 +</code> 
 + 
 +===== 样例5:删除数据库 ===== 
 + 
 +删除 TestDatabase 数据库 
 + 
 +<code batch 02_destroy_data.bat> 
 +@echo off 
 +echo. 
 +echo %date% %time% 
 +echo. 
 + 
 +SET curDir=%~dp0 
 + 
 +echo 当前路径为 %curDir% 
 +echo.  
 + 
 +if /i "%MYSQL_HOME%" == "" goto mysqlnotexist 
 +    goto mysqlexist 
 +  
 +:mysqlexist 
 +echo.   
 +echo MYSQL_HOME 环境变量有效 
 +echo %MYSQL_HOME% 
 +echo. 
 +goto dothing 
 + 
 +:mysqlnotexist 
 +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%;>>%sqlfile%   
 + 
 +echo 生成脚本成功,将要删除数据库: %databasename% 
 +echo.  
 +pause  
 +%MYSQL_HOME%bin\mysql -h localhost -u root -pmysqld<%sqlfile% 
 +echo. 
 +echo 执行成功 
 +echo. 
 + 
 +rem 删除sql脚本 
 +if exist %sqlfile% ( 
 +    del %sqlfile% 
 +    ) 
 + 
 +:end 
 +pause 
 + 
 + 
 +</code> 
 + 
 +===== 样例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 "%MYSQL_HOME%" == "" goto mysqlnotexist 
 +    goto mysqlexist 
 +  
 +:mysqlexist 
 +echo.   
 +echo MYSQL_HOME 环境变量有效 
 +echo %MYSQL_HOME% 
 +echo. 
 +goto dothing 
 + 
 +:mysqlnotexist 
 +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  
 +   
 +: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  %databasename% > %sqlfile% 
 +echo. 
 +echo 执行成功 
 +echo.  
 + 
 +echo *************************** 
 +echo. 
 +echo 如需使用 01_build_data.bat 执行导入, 
 +echo. 
 +echo 请将 %sqlfile% 命名为 %databasename%.sql 
 +echo. 
 +echo *************************** 
 + 
 +:end 
 +pause 
 + 
 + 
 +</code> 
 + 
 + 
  
wiki/windows/windows-cmd-script.1566312121.txt.gz · 最后更改: 2023/01/03 15:24 (外部编辑)