|
|
发表于 2012-3-5 03:06:42
|
显示全部楼层
回复 20# ksly1227
变量 date 处理及用法的错误.
这行代码
@set date=%date:~0,10%
将日期里包含的星期内容给截掉了, date 这个变量是系统提供的一个自动变量, 一般不应该对其赋值.
将这两行:
@set date=%date:~0,10%
@set BACKUP_DIR=D:\bk\full\%date%
改成一行:
set BACKUP_DIR=D:\bk\full\%date:~0,10%
这个截取方式:
set DAY=%date:~13,14%
中的14并不正确, 你的日期格式是 yyyy-mm-dd 星期几
共有14个字符, 从第 13 (~13 的意义)个字符后面开始, 一共截取 14 (,14 的意义) 个字符, 此处因为后面只有最后一个汉字数字可被截取, 所以结果不错, 但如果后面还有字符, 就会一样截取进去, 满 14 个为止.
正确的截取方式有:
%date:~13,1% (从第 13 个字符后面开始, 截取 1 个字符)
%date:~-1,1% (从倒数第一个字符开始截取 1 个字符)
%date:~-1% (从倒数第一个字符开始截取后面的所有字符)
较多的 @ 可以省掉, 在代码较前面行里用 @echo off 来关闭回显 |
|