天天看点

.bat批处理数据库导入sql文件,“系统找不到指定文件”问题

这几天使用Inno Setup 编译器打包项目,需要将数据库文件自动导入,自己写了个bat处理,但是老是提示“系统找不到指定文件”。

经过查询网上的方法,弄了好久,本来放桌面已经正常运行,复制到别的地方执行就不行了。后来仔细查了下,才发现路径需要使用引号(包括%~dp0也需要引号)。

代码贴如下:

@ECHO OFF

SET dbhost=127.0.0.1
SET dbuser=root
SET dbpasswd=china
::SET dbName=test
SET sqlpath="%~dp0"
ECHO 读取sql文件中 …
set sqlfile=20201120.sql
ECHO 读取msql路径中 …
cd "C:\Program Files (x86)\MariaDB 10.0\bin"
echo cd = %sqlpath%
ECHO 开始执行导入数据包动作,可能需要花一点儿时间,请耐心等待 …
::执行SQL脚本
::mysql -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i %sqlpath%%sqlfile%
::手动创建数据库,并指定数据库名称
::mysql -h%dbhost% -P3306 -u%dbuser% -p%dbpasswd% %dbName% < %sqlpath%%sqlfile% --default-character-set=utf8
::sql文件创建数据库,不指定数据库名称
mysql -h%dbhost% -P3306 -u%dbuser% -p%dbpasswd% < %sqlpath%%sqlfile% --default-character-set=utf8
ECHO 导入结束!
ECHO %mysql% %dbhost% %dbuser% %dbpasswd% %sqlpath%%sqlfile%
PAUSE
@ECHO Done!