【问题标题】:Using the current date in a backup batch script as a parameter for file names使用备份批处理脚本中的当前日期作为文件名的参数
【发布时间】:2012-01-31 18:50:46
【问题描述】:

我正在尝试使用计划任务备份我的 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 文件。

【问题讨论】:

    标签: windows command-line cron zip task


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多