有人可以向我解释这个备份脚本吗?
问题描述:
我有一个用于备份我的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
在此先感谢!
答
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=Wed
和DATE_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"
然后使用新的日期和时间格式将其转储到时间戳转储文件。
认为你应该标记@ Mechaflash的答案。 – Vik 2013-01-31 04:58:30
我搜索了很多这个代码。谢谢。 – Sajal 2013-12-10 21:51:07