2012-02-01 75 views
1

我有一个用于备份我的mysqldump的批处理文件,这个工作。但我不明白代码。谁可以给我解释一下这个。有人可以向我解释这个备份脚本吗?

for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i 

for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i 

for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i 
for /f %%i in ('time /t') do set DATE_TIME=%%i 
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i 

:: here i make my backup 
"C:\Program Files\xampp\mysql\bin\mysqldump" -u root mamzel > "C:\Program Files\xampp\mysql\bin\%DATE_DAY%_%DATE_TIME%_mamzel10.sql" 
at /delete /yes 

at 09:00 /every:maandag,woensdag,donderdag d:\mysqlBackup.bat 

在此先感谢!

+0

认为你应该标记@ Mechaflash的答案。 – Vik 2013-01-31 04:58:30

+0

我搜索了很多这个代码。谢谢。 – Sajal 2013-12-10 21:51:07

回答

3
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i 
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i 

如果在美国时间格式,date /t输出日期为Wed 02/01/2012令牌(没有指定delims)将使用空格作为限界因子分离该输出。所以令牌1 = Wed和令牌2 = 02/01/2012。所以你正在分配DATE_DOW=WedDATE_DAY=02/01/2012。由于日子不是英语,因此可能会按照年/月/日的形式进行格式化。

for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i 

这条从日/-取代它,所以你的输出02-01-2012而不是02/01/2012

for /f %%i in ('time /t') do set DATE_TIME=%%i 
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i 

这做同样的事情作为第一部分,除了其抓住时间格式。第二行用破折号-替换冒号:

"C:\Program Files\xampp\mysql\bin\mysqldump" -u root mamzel > "C:\Program Files\xampp\mysql\bin\%DATE_DAY%_%DATE_TIME%_mamzel10.sql" 

然后使用新的日期和时间格式将其转储到时间戳转储文件。

相关问题