繁体   English   中英

Windows命令提示中无法使用while命令

[英]Unable to use while command in Windows Command Prompt

我要完成的工作是将我拥有的每个数据库都转储到单独的.sql文件中。 每当我运行代码时,都会出现与“ while”和“ do”命令有关的错误,具体取决于我放置的是哪个命令。 从那以后,我一直以“ while”为首,“ do”为首的示例为例。 我已经尝试过这两种方法,并且两者都导致'未被识别为内部或外部命令。

我在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

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

为什么在使用while和do命令时出现错误? 如何解决此错误?

谢谢

管道| 和输出重定向>首先由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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM