如何修复在mysqldump中输入文件路径和日期时发生的错误?



如何修复在mysqldump中输入文件路径和日期时发生的错误?

我在cmd中运行mysqldump命令如下:

set _my_datetime=%date:-=%

mysqldump -u root -p --all-databases -pMyPassword > C:Program FilesMariaDB 10.4databackup%_my_datetime%.sql

但是结果是:

Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

我想知道如何在Windows服务器环境下修改上述命令。

因为%date:-=%将被计算为Tue 10/19/2021,并且这个日期分隔符正斜杠/mysqldump命令中使用的路径冲突。

C:xamppmysqlbin>set _my_datetime=%date:-=%
C:xamppmysqlbin>echo %_my_datetime%
Tue 10/19/2021
C:Program FilesMariaDB 10.4databackup%_my_datetime%.sql
=> Will be: C:Program FilesMariaDB 10.4databackupTue 10/19/2021.sql

是一个错误的Windows路径语法,在你的情况下抛出一个通用语法异常。

<<p>解决方案/strong>
找到一种方法,将分隔符设置为破折号-或下划线_

你可以直接使用

mysqldump -u root -p --all-databases -pMyPassword > "C:Program FilesMariaDB 10.4databackupmysql_backup_%date:~-10,2%-%date:~-7,2%-%date:~-4,4%-%time:~0,2%_%time:~3,2%_%time:~6,2%.sql"

将给出一个文件名模式:mysql_backup_10-19-2021-10_08_12.sql

Windows命令行中的日期格式可以以其方式嘲弄。

参考:
如何在命令提示符中使用mysqldump添加备份文件名的日期和时间,并定义备份文件的路径
在Windows批处理脚本中设置日期和时间