我已经为mysql数据库备份创建了一个批处理文件。它在Windows登录任务计划程序上运行。如果我在九点钟左右启动计算机,则该任务不会运行。它说访问被拒绝,其余时间都在运行。在我看来,它介于4位时间戳与3位945(9.45)与1045(10.45)之间。这是我的猜测。请查找代码以解决此问题。谢谢
@ECHO OFF
Echo Avoid Any MYSQL Transcations until backup completes
set TIMESTAMP=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%-%TIME:~0,2%%TIME:~3,2%
md e:\%TIMESTAMP%\am
CD /D d:\\bin\mysql\mysql5.7.9\bin\
mysql -s -e "SHOW TABLES FROM amazon" --user=* --password= * --skip-column-names > e:\tables.txt
for /f %%A in (e:\tables.txt) DO (mysqldump --user=* --password= * amazon %%A > e:\%TIMESTAMP%\am\%%A.sql)
mysqldump --user=* --password= * --no-create-db --no-create-info --no-data --routines am > e:\%TIMESTAMP%\am\procNtrig.sql
CD /D e:\
C:\7zip\7za a %TIMESTAMP%.zip e:\%TIMESTAMP%\*
RMDIR /S /q e:\%TIMESTAMP%
答案 0 :(得分:0)
您需要做的就是用0
变量中的%TIMESTAMP%
替换空格。 %time%
在变量中唯一有空格的时间是单位数字字符时间。 1-9
因此,由于您只有时间问题,我们可以对其进行专门处理。
您应该能够以更好的结果运行它。
@ECHO OFF
Echo Avoid Any MYSQL Transcations until backup completes
set "times=%time:~0,5%"
set "times=%times::=%"
set "times=%times: =0%"
set "timestamp=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%-%times%
md "e:\%timestamp%\am"
CD /D "d:\bin\mysql\mysql5.7.9\bin\"
mysql -s -e "SHOW TABLES FROM amazon" --user=* --password= * --skip-column-names > e:\tables.txt
for /f %%A in (e:\tables.txt) DO (mysqldump --user=* --password= * amazon %%A > e:\%timestamp%\am\%%A.sql)
mysqldump --user=* --password= * --no-create-db --no-create-info --no-data --routines am > e:\%timestamp%\am\procNtrig.sql
CD /D e:\
C:\7zip\7za a %timestamp%.zip e:\%timestamp%\*
RMDIR /S /q "e:\%timestamp%"