簡體   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