写bat文件,报系统找不到指定文件的处理方式

昨天,为了一个项目的数据初始化问题,需要在新系统的MySQL库中加入新的库,新的数据。借鉴了网络上各位大神的方法。实现如下:

@ECHO OFF

SET dbhost=127.0.0.1
SET dbuser=root
SET dbpasswd=123456
SET sqlpath=%~dp0
set sqlfile=20211014.sql
cd /d C:\Program Files\MySQL\MySQL Server 5.7\bin
ECHO Writing Data,Please Waiting ...
mysql -h%dbhost% -u%dbuser% -p%dbpasswd% < %sqlpath%%sqlfile% --default-character-set=utf8

@ECHO Done!

但是这个在创建该文件的目录可用,在实际应用的目录却一直报 “系统找不到指定的文件”。

经过关进程、重启机器等等方式,都是一样的问题,没有发生任何变化。

在没有办法的时候,突然想到之前在工作中遇到的问题,关于路径空格的问题。我就又仔细比对了一下两个bat运行的路径,发现我目的路径中,文件夹存在空格。所以就将路径改为

mysql -h%dbhost% -u%dbuser% -p%dbpasswd% < "%sqlpath%%sqlfile%" --default-character-set=utf8

之后就可以找到相应的文件了。

还有一个问题就是在mysql语句中存在密码的问题,会有异常提示显示。看到网上的各种办法,解决的方式也较麻烦,还好它仅仅是个提示,功能还是在正常实现。也就没有对其处理。

参考:.bat批处理数据库导入sql文件,“系统找不到指定文件”问题_隐居的山贼-CSDN博客

批处理(.bat)文件中找不到文件等路径问题_feiyu68的博客-CSDN博客

上一篇:BAT面试遭Spring惨虐,面试官给了我7道问题让我明年再来


下一篇:‘java‘不是内部或外部命令,也不是可运行的程序或批处理文件【本人亲测解决方法】