batch-file - 使用日期和时间作为文件名生成备份文件

标签 batch-file mysqldump

我该如何正确地做到这一点。我正在尝试将 mysqldump 生成的 sql 文件命名为当前日期和时间。我已经在这个网站上进行了一些研究,并在这里找到了一个代码:How to get current datetime on Windows command line, in a suitable format for using in a filename?

试图将它与我当前的代码混合起来,我想出了这个。该文件被命名为当前日期和时间,但它只有一个 1kb 的文件,并且不会生成一个 .sql 文件。 它应该是一个 7 kb 的 sql 文件。

@For /f "tokens=2-4 delims=/ " %%a in ('date /t') do @(set mydate=%%c-%%a-%%b)
@For /f "tokens=1-2 delims=/:" %%a in ('time /t') do @(set mytime=%%a%%b)    

@echo mydate= %mydate%
@echo mytime= %mytime%

mysqldump -u root -p --add-drop-table --create-options --password= onstor >c:\%mydate%_%mytime%.sql

更新 我认为 mysqldump 命令没有问题,因为当我这样做时它运行良好。下面的代码仅使用日期作为其文件名。

@For /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') do @( 
    Set Month=%%A
    Set Day=%%B
    Set Year=%%C   
)    

@echo DAY = %Day%
@echo Month = %Month%
@echo Year = %Year%    

mysqldump -u root --add-drop-table --create-options --password= onstor >c:\%Day%-%Month%-%Year%.sql

请帮忙,谢谢。

最佳答案

在 Linux 上,只需将 $(date +%Y-%m-%d-%H.%M.%S) 放在文件名中即可显示日期和时间,这样看起来喜欢:

mysqldump -u <user> -p <database> | bzip2 -c > <backup>$(date +%Y-%m-%d-%H.%M.%S).sql.bz2

(此命令还使用 bzip2 压缩文件)

关于batch-file - 使用日期和时间作为文件名生成备份文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4536376/

相关文章:

java - 将批处理文件输出到 JTextArea

windows - 无法从批处理文件打开 .chm 文件

mysql - 迁移服务器,不想丢失 MySQL 数据。 Master-Master 设置是否可行?

mysql - 刷新表 - 访问被拒绝

mysql - 将 mariadb 10 转储导出到 mysql 5.5

cron 启动的 mysqldump 和密码安全

batch-file - 从多个目录复制具有特定扩展名的文件

batch-file - 从文件名中删除特殊字符的脚本

batch-file - 转义 `delims` 的 `for/F` 选项中的双引号

backup - 确保 mysqldump <-> rsync 的数据完整性