dos以时间命名文件

Posted on Posted in bat
Tips: 本文创建于2013年12月13日,已超过 2 年,内容或图片可能已经失效!

自己记录过dos下显示时间——>dos当前时间

在具体的脚本环境中会出现问题,时间输出的格式,上午5点是 5:00(5前面有个空格),下午5点是17:00,这样在脚本以时间命名的功能中,上午就会出错。

解决办法1:

脚本的功能:简单的备份mysql语句,备份mysql的数据文件

set today="%date:~6,4%%date:~0,2%%date:~3,2%" ### 日期变量  
set tsp="%time:~0,1%" ### 时间变量  
if %tsp%==" " (set totime=%time:~1,1%%time:~3,2%%time:~6,2%) & goto LS ### 解决空格的问题  
set totime=%time:~0,2%%time:~3,2%%time:~6,2%  
:LS  
  
MD D:\mysql_bak\%today% ### 新建目录  
MD D:\mysql_bak\%today%\%totime%  
c:  
cd C:\Program Files\MySQL\MySQL Server 5.7\  
XCOPY data D:\mysql_bak\%today%\%totime% /e /y ### 备份文件  
mysqldump --all-databases -uroot -h 192.168.1.201 -pN0c7IyV8Z3 --set-gtid-purged=OFF --default-character-set=utf8mb4 > D:\mysql_bak\%today%\%totime%\%totime%.sql ### 备份语句  
  
### 这条不是脚本里的,作用是利用好压软件的命令行打包  
HaoZipC a -tzip backup-%date:~0,4%%date:~5,2%%date:~8,2%.zip E:\backup\%date:~0,4%%date:~5,2%%date:~8,2%\*  

查看下数据编码

mysql> show variables like "char%";  

char.png

解决办法2:

set time_hh=%time:~0,2%  
if /i %time_hh% LSS 10 (set time_hh=0%time:~1,1%)  
set filename=%date:~,4%%date:~5,2%%date:~8,2%_%time_hh%%time:~3,2%%time:~6,2%  
echo %filename%.txt  
  • /i:不区分大小写
  • equ:equal 等于
  • gtr:greater than 大于
  • geq:greater than or equal 大于或等于
  • lss:less than 小于
  • leq:less than or equal 小于或等于
  • neq:no equal 不等于
» 转载请注明来源:若我若鱼 » dos以时间命名文件

Leave a Reply

Your email address will not be published. Required fields are marked *

eleven − 2 =