我有一个简单的BAT文件,我有时希望运行它来备份两个本地开发MySQL数据库。
例如,文件名应为“ testdb1-Fri 6/6/2018 194233.sql”。但是,我的BAT脚本以某种方式使mysqldump查找名为6/6/2018的表?下面的脚本以及错误的屏幕截图。
@ECHO OFF
set filename=%date:~0,4%%date:~5,2%%date:~8,2%%date:~10,4% %time:~0,2%%time:~3,2%%time:~6,2%
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe" -u root -proot -hlocalhost cadsys > C:\temp\testdb1-%filename%.sql
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe" -u root -proot -hlocalhost comm1 > C:\temp\testdb-%filename%.sql
pause
cls
exit
答案 0 :(得分:0)
在建议的文件名周围加上引号,文件名中的空格由mysqldump解释为单独的命令
set filename="%date:~0,4%%date:~5,2%%date:~8,2%%date:~10,4% %time:~0,2%%time:~3,2%%time:~6,2%"