2012-02-01 124 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" 

然後使用新的日期和時間格式將其轉儲到時間戳轉儲文件。

相關問題