То, что я пытаюсь выполнить, - это сброс каждой из баз данных, которые у меня есть, в отдельные .sql-файлы. Всякий раз, когда я запускаю свой код, я получаю сообщение об ошибке в отношении команд «while» и «do», в зависимости от того, какой из них я поставил первым. У меня есть примеры, когда «пока» первый и где «делать» является первым. Я попробовал оба, и оба результата приводят к тому, что «не распознается как внутренняя или внешняя команда.Невозможно использовать команду в командной строке Windows
Я использую следующие в моей 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 и do? Как устранить эту ошибку?
Благодаря
Труба '|' и перенаправления вывода ''> интерпретируются cmd.exe первого и не рассматриваются как порт сценария. Попытайтесь избежать их с помощью кавычки '^ |' и '^>'. – LotPings
У вас также есть странные двойные кавычки. – Compo
@LotPings Это разрешило ошибку, которую я получал. Если вы создадите ответ, я отметю его правильно. У меня есть побочный вопрос в результате решения этого вопроса. Правильно ли я использую переменные? Мой файл выходит как $ dbname_6am_mon.sql вместо имени фактической базы данных. –