2012-01-31 9 views
2

計画したタスクでMySQLデータベースをバックアップしようとしています。コマンドは、バックアップするSQLは次のとおりです。バックアップバッチスクリプトの現在の日付をファイル名のパラメータとして使用する

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

は、私は何をしたいのは、それがdatabasebackup_2012-01-31.sqlになりように、ファイル名に現在の日付を追加することです。さらに理想的には、ファイルdatabasebackup_2012-01-31.sqlをz3ファイルdatabasebackup_2012-01-31.zipに圧縮するのが理想的です。これは、sqlファイルに圧縮可能なテキストが大部分含まれているためです。圧縮後、sqlファイルは削除され、zipファイルのみがバックアップされます。

答えて

3

CMD.exeには、日付を提供する疑似変数があります。また、http://dotNetZip.codeplex.comからコマンドラインのzipツールを入手することもできます。あなたがやりたい

バッチファイルは次のようになります。

@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 
関連する問題