批处理文件时间戳问题



我已经为mySQL数据库备份创建了一个批处理文件。这是在Windows登录任务调度程序上运行的。如果我在九'O时钟启动机器时,则该任务不会运行,它说访问被拒绝,其余时间运行。在我看来,这是时间戳记的4位数字与三位数945(9.45(vs 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:\binmysqlmysql5.7.9bin
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%amprocNtrig.sql
CD /D e:
C:7zip7za a  %TIMESTAMP%.zip e:%TIMESTAMP%*
RMDIR /S  /q e:%TIMESTAMP%

您需要做的就是用%TIMESTAMP%变量中的0替换空间。唯一的%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:binmysqlmysql5.7.9bin"
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%amprocNtrig.sql
CD /D e:
C:7zip7za a  %timestamp%.zip e:%timestamp%*
RMDIR /S /q "e:%timestamp%"

相关内容

  • 没有找到相关文章

最新更新