bat脚本时间设定如下:
C:\Users\EDY>echo %date%
2022/03/16 周三
%date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符 (年)
C:\Users\EDY>echo %date:~0,4%
2022
%date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符 (月)
C:\Users\EDY>echo %date:~5,2%
03
%date:~8,2% 表示指针从左向右偏移8位,然后从偏移处开始提取2位字符 (日)
C:\Users\EDY>echo %date:~8,2%
16
%date:~5% 表示指针从左向右偏移5位,然后提取所有的值
C:\Users\EDY>echo %date:~5%
03/16 周三
%date:~-5% 表示指针反方向偏移,从最右端开始,偏移5位,从指针处提取左边的所有数值。
C:\Users\EDY>echo %date:~-5%
16 周三
C:\Users\EDY>echo %time%
10:21:59.13
%time:~0,2% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符(时)
C:\Users\EDY>echo %time:~0,2%
10
%time:~3,2% 表示指针从左向右偏移3位,然后从偏移处开始提取2位字符 (分)
C:\Users\EDY>echo %time:~3,2%
23
%time:~6,2% 表示指针从左向右偏移6位,然后从偏移处开始提取2位字符 (秒)
C:\Users\EDY>echo %time:~6,2%
40
有个问题, 就是如果TIME 是00点的时候,电脑显示的是0 不是00所以TIME 0~2 会有空格。
解决方案 补0
if
%
time
:~0,2% leq 9 (
set
hour=0%
time
:~1,1%)
else
(
set
hour=%
time
:~0,2%)
C:\Users\EDY>if %time:~0,2% leq 9 (set hour=0%time:~1,1%) else (set hour=%time:~0,2%)
C:\Users\EDY>echo %hour%
09
C:\Users\EDY>echo %date:~0,4%%date:~5,2%%date:~8,2%%hour%%time:~3,2%
202203160954