Использование текущей даты в резервном пакетном скрипте в качестве параметра для имен файлов - PullRequest
2 голосов
/ 31 января 2012

Я пытаюсь сделать резервную копию моей базы данных MySQL с запланированной задачей. Команда для резервного копирования SQL:

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

Я хотел бы добавить текущую дату к имени файла, чтобы она была databasebackup_2012-01-31.sql. Еще больше В идеале я бы сжал файл databasebackup_2012-01-31.sql в zip-файле databasebackup_2012-01-31.zip, поскольку файл sql в основном содержит очень хорошо сжимаемый текст. После сжатия файл sql будет удален, и будет сохранена резервная копия только zip-файла.

1 Ответ

3 голосов
/ 01 февраля 2012

В CMD.exe есть псевдопеременная, которая предоставляет дату.Также вы можете получить zip-инструменты командной строки из 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
...