Windows Bat脚本问题收录

如题所述

第1个回答  2022-06-08
一般运行bat脚本动态设置时间用如下语句:
set dateStr=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
各个操作的意义如下:
%time:~0,2% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符,结果是小时字段数值
%time:~3,2% 表示指针从左向右偏移3位,然后从偏移处开始提取2位字符,结果是分钟字段数值
%time:~6,2% 表示指针从左向右偏移6位,然后从偏移处开始提取2位字符,结果是秒字段数值

导致脚本无法正常运行的语句如下:
%time:~0,2%%time:~3,2%%time:~6,2%
就是如果time 是00点 ~ 09点的时候命令截取出来前面0掉了,所以 %time:~0,2% 就会在命令中产生一个空格导致命令执行报错了,一般报错:无效的参数数量

总结:
1)如果要用 %time:~0,2%%time:~3,2%%time:~6,2% (运行脚本的时间一定是在10-23点区间,否则0-9(H)脚本调用函数错误,无法运行)
2)如果要用 %time:~1,1%%time:~3,2%%time:~6,2% (建议运行脚本的时间在0-9点这个区间,如果是>9点,比如13点,但是会造成只显示个位数字3,比如2019-1-20 时间13:26:20 会显示2019012032620 从而影响时间的整体准确性
相似回答