mysql批处理命令执⾏多个sql脚本
⽅法1
若有SQL脚本a.sql, b.sql, 其⽬录在f盘根⽬录下, 则可再写⼀个SQL脚本c.sql(假设其⽬录也在f盘根⽬录下, 也可以在其他路径下)如下: source f:/a.sql;
source f:/b.sql;
然后执⾏source f:/c.sql 即可.
⽅法2
⽅法1的不便之处在于, 要为每个脚本写⼀句代码, 若有成千上万个, 这样写便不现实. 此时, 可⽤批处理来实现.
以执⾏f:\test\⽬录下所有的SQL脚本为例, 其批处理代码如下:
@echo off
for %%i in (f:\test*.sql) do (
echo excute %%i
mysql -uroot -p123456 < %%i
)
echo success
pause
其中: do后⾯的左括号要跟在do后, 若放在do的下⼀⾏, 则出会出现⼀闪⽽过的情况, 数据库脚本有没有执⾏没有去查看.
若是当前⽬录下, 可将”f:\test*.sql” 改为”.*.sql” 即可.
注意在SQL脚本中写上 use db_name.
批处理命令备份mysql数据库
本⽂转⾃
MySQL数据的备份⼯具也许有很多,在这我要给⼤家分享⼀下通过DOS批处理命令和MySQL、WinRAR命令来进⾏备份⼯作。
⼯作环境 Windows Server 2003 ,MySQL安装⽬录 D:\MySQL , WinRAR 安装⽬录 C:\Program Files\
备份数据存储的路径为 E:\数据备份,好了下⾯开始写DOS批处理命令了。
复制代码代码如下:
set “Ymd=�te:~,4%�te:~5,2%�te:~8,2%”
md “E:\数据备份\%ymd%”
“D:\MySQL\” –opt -Q mysql -uroot -p123456789 > E:\数据备份\%Ymd%\mysql.sql
REM ….. 这⾥可以添加更多的命令,要看你有多少个数据库,其中 -Q 后⾯是数据库名称 -p紧跟后⾯是密码
echo Winrar loading…
“C:\Program Files\” a -ep1 -r -o+ -m5 -df “E:\数据备份\%Ymd%.rar” “E:\数据备份\%Ymd%”
echo OK!
把上⾯的命令保存为 backup.bat ,双击运⾏,就开始备份数据了。
第⼀句是建⽴⼀个变量 %Ymd% ,通过�te% 这个系统变量得到⽇期,�te:~,4% 表⽰取⽇期的前⾯4个字符就是年份,%�te:~5,2% 表⽰取⽇期第5个字符开始的2个字符就是⽉份,�te:~8,2% 这个就是⽇期号数,如 2009-06-20 这个⽇期最后得到的结果是 20090620
第⼆句就是使⽤变量 %Ymd% 的值建⽴⼀个空的⽂件夹。
第三句开始就是使⽤MySQL的命令对数据库mysql 进⾏备份,并存储在 E:\数据备份\%ymd% 这个⽂件夹下⾯,这⾥可以有很多类似的命令,备份多个数据库。
最后就是使⽤ WinRAR 对备份的数据进⾏压缩,并存储为以 %Ymd% 变量值建⽴的RAR⽂件名,同时删除备份的 %Ymd% ⽬录。
如果你想让系统⾃动定期备份,就可以通过系统的任务计划定期执⾏这个命令。
批处理语法,bat语法
批处理就是把⼀批或者说是⼀条条命令放在⼀个⽂本⾥,然后批量执⾏!执⾏这
⼀批命令的⽂件的扩展名是BAT⽂件或者CMD,把任何⼀批命令放⼊在有这样扩展名的⽂件⾥,执⾏时⾥⾯的命令就会⼀条条的执⾏完,当然我们还可以在其中加⼊⼀些逻辑判断的语句,让⾥⾯的命令在满⾜⼀定条件时执⾏指定的命令.
了解了⼤概意思后,我们正式开始学习.先看⼀个简单的例⼦!
@echo off
echo “欢迎来到⾮常BAT!”
pause
把上⾯的3条命令保存为test.bat或者d然后执⾏,他就会在屏幕上显⽰⼆⾏话:”欢迎来到⾮常BAT!请按任意键继续…”
这就是⼀个简单批处理⽂件了,我们来分析⼀下.
这个批处理⽂件⼀共就⽤了2条命令 “echo” 和”pause” 还有⼀个特殊符号”@”
@符号在批处理中的作⽤是关闭当前⾏命令的回显,也就是不显⽰执⾏的是什么命令,只显⽰命令的结果!
你可以执⾏下⾯这个批处理⽂件来理解,保存为.bat或者.CMD
@echo 你好
echo 你好
@pause
echo命令的作⽤有两个,⼀个是在CMD上回显⼀⾏内容.如:echo “欢迎来到⾮常BAT!”,还⼀个是关闭命令的回显:echo off
echo off的作⽤就相当于在每条命令前⾯加⼀个@符号,这样所有的命令将只会显⽰结果不显⽰命令.
我们在echo off这命令前加⼀个@符号是为了不让echo off这条命令本⾝显⽰出来,让批处理更完美!
pause命令就是暂停的意思,防⽌批处理执⾏完后直接退出!执⾏pause命令后会⾃动在CMD⾥显⽰”请
按任意键继续…”这样⼀⾏话!
从上⾯这个简单的批处理中,我们可以发现其实批处理就是运⽤⼀些含有特殊意义的符号和⼀些完成指定功能的命令组合⽽成,那么在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解⼀下⼀些最常⽤的!
(以下内容来源⽹络,请各位仔细阅读,好进⼊下节的实例说明)
批处理的常见命令
REM
ECHO
GOTO
CALL
PAUSE
IF
还有(FOR,SETLOCAL,SHIFT)这⼏个命令⽐较难,不适合写在基础篇,以后说明!
批处理定义:顾名思义,批处理⽂件是将⼀系列命令按⼀定的顺序集合为⼀个可执⾏的⽂本⽂件,其扩展名为BAT。
这些命令统称批处理命令。
介绍命令
1、REM (remark)
REM是个注释命令,⼀般⽤来给程序加上注解,该命令后的内容在程序执⾏时,将不会被显⽰和执⾏。
例:REM 这个命令就是注释
这⼀句将不会被执⾏
2、ECHO
ECHO是⼀个回显命令,主要参数有OFF和ON。⼀般⽤ECHO MESSAGE来显⽰⼀个特定的消息。
例:
Echo off
Rem 以上代表关闭回显(就是不显⽰所执⾏的命令)
Echo 这个就是消息(message)
Rem 以上代表显⽰“这就是消息(message)”这列字符
咱们来看看执⾏结果:
3、GOTO
GOTO会点编程的朋友就会知道这是跳转的意思。
在批处理中允许以“:XXX”来构建⼀个标号,然后⽤GOTO XXX直接来执⾏标号后的命令。
例:
:lable
REM 上⾯就是名为LABEL的标号
DIR C:\
DIR D:\
GOTO lable
REM 以上程序跳转标号LABEL处继续执⾏
咱们来看看结果:
4、CALL
CALL命令可以在批处理执⾏过程中调⽤另⼀个批处理,当另⼀个批处理执⾏完后,再继续执⾏原来的批处理
例:
创建⼀个2.BAT,内容如下
ECHO 这就是2的内容
创建⼀个1.BAT,内容如下
ECHO 这是1的内容
CALL 2.BAT
ECHO 1和2的内容全部显⽰完成。
执⾏1.BAT,来看看结果:
5、PAUSE
PAUSE,玩游戏的⼈都知道,暂停的意思
在这⾥就是停⽌系统命令的执⾏并显⽰下⾯的内容。
例:
PAUSE
6、IF
IF 条件判断语句,语法格式如下:
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
解释下:
[NOT]:将返回结果取反值,就是“如果没有”的意思
ERRORLEVEL:
是命令执⾏完成后返回的退出值
Number:
退出值的数字取值范围0~255,判断时值的排列顺序应该由⼤到⼩。返回的值⼤于等于指定的值时,条件成⽴
string1==string2:
string1和string2都为字符的数据,英⽂内字符的⼤⼩写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)
条件相等后即执⾏后⾯的command
EXIST filename:
为⽂件或⽬录存在的意思
IF ERRORLEVEL这个句⼦必须放在某⼀个命令的后⾯,执⾏命令后由IF ERRORLEVEL 来判断命令的返回值。例:
(1)
IF [NOT] ERRORLEVEL number command
检测命令执⾏完后的返回值做出判断
echo off
dir z:
mysql下载下来是一个文件夹rem 如果退出代码为1(不成功)就跳⾄标题1处执⾏
IF ERRORLEVEL 1 goto 1
REM 如果退出代码为0(成功)就跳⾄标题0处执⾏
IF ERRORLEVEL 0 goto 0
:0
echo 命令执⾏成功!
Rem 程序执⾏完毕跳⾄标题exit处退出
goto exit
:1
echo 命令执⾏失败!
Rem 程序执⾏完毕跳⾄标题exit处退出
goto exit
:exit
Rem 这⾥是程序的出⼝
(2)IF string1==string2 command
检测当前变量的值做出判断
ECHO OFF
IF 1==2 goto no
Echo 变量相等!
goto exit
:no
echo 变量不相等
goto exit
:exit
看看效果,敲击这个命令1.bat 数字
(3)IF [NOT] EXIST filename command
发现特定的⽂件做出判断
echo off
IF not EXIST autoexec.bat goto 1
echo ⽂件存在成功!
goto exit
:1
echo ⽂件不存在失败!
goto exit
:exit
这个批处理⼤家可以放在C盘和D盘分别执⾏,看看效果
特殊符号:
1. @
2. >
3. >>
4. |
5. ^
6. &
7. &&
8. “”
9. ,
10. ;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论