九溪

溪水润知林,滴露启慧心

用户工具

站点工具


wiki:windows:windows-cmd-script

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
wiki:windows:windows-cmd-script [2019/08/20 23:07] colinwiki:windows:windows-cmd-script [2023/01/03 15:25] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
-====== 批处理常用脚本 ======+====== 批处理常用脚本:MYSQL相关 ======
  
-===== 样安装并启动服务 =====+本示是 MySQL 安装、卸载、数据导入、数据导出 相关脚本。
  
-说明:设置my.ini、安装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> <code batch 01_install_then_run_server.bat>
 @echo off @echo off
- + 
-rem echo 注意:不支持带空格的目录+
 echo. echo.
 echo %date% %time% echo %date% %time%
行 55: 行 106:
 echo. echo.
 rem 从 my_default.ini 中拷贝文本至my.ini rem 从 my_default.ini 中拷贝文本至my.ini
-set mydefaultini=%curDir%my_default.ini +set mydefaultini="%curDir%my_default.ini" 
-set myini=%curDir%my.ini+set myini="%curDir%my.ini"
              
 rem 清空文件,重新写入 rem 清空文件,重新写入
 if exist %myini% ( if exist %myini% (
     del %myini%     del %myini%
-    ) +    )  
-  + 
-for /f "tokens=1,* delims= " %%i in (%mydefaultini%) do ( +rem usebackq 支持文件路径中带空格 
-    rem echo %%i %%j+for /f "usebackq tokens=1,* delims= " %%i in (%mydefaultini%) do (
  rem 追加内容  rem 追加内容
- echo %%i %%j>>%myini% + echo %%i %%j>>%myini%  
  
- 
 set line1=basedir="%curDir%" set line1=basedir="%curDir%"
 echo %line1%>>%myini%  echo %line1%>>%myini% 
行 90: 行 140:
 echo 正在设置环境变量 echo 正在设置环境变量
 echo. echo.
-setx /M MYSQL_HOME %curDir+rem 左单引号,能够支持包含空格的路径 
-echo 已设置环境变量 MYSQL_HOME=%curDir%+set environment_path="%curDir% 
 +setx /M MYSQL_HOME %environment_path
 +echo 已设置环境变量 MYSQL_HOME = %environment_path%
 echo. echo.
 echo ********************************************************** echo **********************************************************
 +echo. 
 +echo 请查阅提示信息
 cd ../ cd ../
 call ReadMeAfterInstalled.txt call ReadMeAfterInstalled.txt
 +echo. 
 +echo 将自动使用默认账户登录MYSQL,请注意及时修改密码
 +echo.
 pause pause
  
 +"%curDir%bin\mysql" -h localhost -u root -pmysqld
 +echo.
 :end :end
-echo 正在退出 +pause
 </code> </code>
  
- +===== 样例3停止删除服务 =====
-===== 样例:关闭卸载服务 =====+
  
 <code batch 02_stop_then_del_server.bat> <code batch 02_stop_then_del_server.bat>
行 131: 行 187:
     del my.ini     del my.ini
     )     )
- 
   
 echo ********************************************************** echo **********************************************************
 echo 正在删除环境变量 echo 正在删除环境变量
-echo. +echo.
 setx /M MYSQL_HOME "" setx /M MYSQL_HOME ""
 REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V MYSQL_HOME REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V MYSQL_HOME
行 148: 行 203:
 </code> </code>
  
-===== 样例:向MySQL中导入数据 =====+ 
 +===== 样例4:导入数据 ===== 
 + 
 +如果 TestDatabase 数据库存在,首先将其销毁。 
 + 
 +然后创建 TestDatabase 数据库,向该数据库导入脚本所在目录下的 TestDatabase.sql 数据
  
 <code batch 01_build_data.bat> <code batch 01_build_data.bat>
行 179: 行 239:
 :dothing :dothing
  
-set sqlfile=%curDir%import.sql +set databasename=TestDatabase 
-set importsql=%curDir%CLDDGL20190820.sql+set sqlfile=%curDir%tempimportsql.sql 
 +rem sql脚本文件名称与数据库名称一致 
 +set importsql=%curDir%%databasename%.sql
  
-rem 创建导入sql脚本+rem 创建sql脚本
 if exist %sqlfile% ( if exist %sqlfile% (
     del %sqlfile%     del %sqlfile%
     )     )
-echo drop database if exists CLDDGL;>>%sqlfile%  +echo drop database if exists %databasename%;>>%sqlfile%  
-echo create database CLDDGL;>>%sqlfile%  +echo create database %databasename%;>>%sqlfile%  
-echo use CLDDGL;>>%sqlfile% +echo use %databasename%;>>%sqlfile% 
 echo source %importsql%>>%sqlfile%  echo source %importsql%>>%sqlfile% 
  
行 199: 行 261:
 echo. echo.
  
-rem 删除导入sql脚本+rem 删除sql脚本
 if exist %sqlfile% ( if exist %sqlfile% (
     del %sqlfile%     del %sqlfile%
行 206: 行 268:
 :end :end
 pause pause
 +
  
 </code> </code>
  
-其中 CLDDGL20190820.sql 要导的数据+===== 样例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.1566313630.txt.gz · 最后更改: 2023/01/03 15:24 (外部编辑)