Может кто-нибудь объяснить мне этот скрипт резервного копирования? - PullRequest
1 голос
/ 01 февраля 2012

У меня есть командный файл для создания резервной копии моего 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

Заранее спасибо!

1 Ответ

3 голосов
/ 01 февраля 2012
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"

. Затем используются новые форматы даты и времени, чтобы вывести их в файл дампа с временной меткой.

...