在Windows命令提示符

时间:2017-01-09 19:33:42

标签: mysql batch-file cmd

我想要完成的是将我拥有的每个数据库转储到单独的.sql文件中。每当我运行我的代码时,我都会收到与“'”相关的错误。并且'做'命令取决于我先放哪一个。我以后的例子就是' while'是第一个'做'是第一个。我已经尝试了两者,两者都导致“未被识别为内部或外部命令。”

我在我的cmd行中使用了以下内容

"C:\Program Files\MySQL\MySQL Server 5.7\bin\"mysql -u[user] -p[password] -e "show databases" | while read dbname do "C:\Program Files\MySQL\MySQL Server 5.7\bin\"mysqldump -u[user] -p[password] --complete-insert "$dbname" > "D:\Backup\$dbname"_6am_mon.sql; done

但是,我一直收到以下错误:'而#39;不被识别为内部或外部命令,可操作程序或批处理文件。

为什么我使用while和do命令会出错?如何解决此错误?

由于

1 个答案:

答案 0 :(得分:0)

管道|和输出重定向>首先由cmd.exe解释,不会被视为脚本的一部分。尝试用插入符号逃避它们^ |和^>

不太了解Mysql脚本处理引用重定向文件名可能是$ dbname未解析的原因。

解决方法可能是将脚本放在文件中并从批处理中调用它

@Echo off
Pushd "C:\Program Files\MySQL\MySQL Server 5.7\bin\"
mysql -u[user] -p[password] -e "Source X:\Path\Script.sql"
Popd
相关问题