我该如何正确地做到这一点。我正在尝试将 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/