使用备份批处理脚本中的当前date作为文件名的参数

我正在尝试用计划任务来备份我的MySQL数据库。 备份SQL的命令是:

mysqldump.exe -h localhost -u root databasename > databasebackup.sql 

我想要做的是将当前date添加到文件名,这将是databasebackup_2012-01-31.sql 。 甚至更多理想情况下,我会压缩文件databasebackup_2012-01-31.sql在一个zip文件databasebackup_2012-01-31.zip因为sql文件大多包含非常好的可压缩文本。 压缩后,sql文件将被删除,只有zip文件保持备份。

Solutions Collecting From Web of "使用备份批处理脚本中的当前date作为文件名的参数"

CMD.exe中有一个伪变量提供日期。 您也可以从http://dotNetZip.codeplex.com获取命令行压缩工具。

一个批处理文件做你想做的事情是这样的:

 @echo off @setlocal echo The date is %DATE% @set tag=%DATE:~-4%-%DATE:~7,2%-%DATE:~4,2% set backupfile=databasebackup.%tag%.sql echo backing up to: %backupfile% echo. echo ^<do the backup here^> echo. echo hello hello hello hello > %backupfile% @REM The DotNetZip download for ZIP Tools includes a command-line zip utility. @REM Get it from http://dotnetzip.codeplex.com. set zipit=\Program Files (x86)\Dino Chiesa\DotNetZip Tools 1.9\ZipIt.exe set unzip=\Program Files (x86)\Dino Chiesa\DotNetZip Tools 1.9\UnZip.exe set zipfile=%backupfile%.zip if exist %zipfile% ( echo deleting existing zip... del %zipfile% ) "%zipit%" %zipfile% -s Readme.txt "Backed up on %DATE% at %TIME%" %backupfile% echo. @REM list the contents of the created zip "%unzip%" -l %zipfile% echo. echo ^<delete the sql file here^> echo. del %backupfile% @endlocal