date&time-batch
2020年12月16日date
dos 终端中获取当前日期并进入新日期设置界面(需要注意是否在域内,如果在域内有可能不能设置新的日期)
示例:
D:\>date 当前日期: 2020/12/14 周一 输入新日期: (年月日)
语法:
D:\>date /? 显示或设置日期。 DATE [/T | date] 显示当前日期设置和输入新日期的提示,请键入 不带参数的 DATE。要保留现有日期,请按 Enter。 如果命令扩展被启用,DATE 命令会支持 /T 开关; 该开关指示命令只输出当前日期,但不提示输入新日期。
解释:
直接执行 date ,就会出现当前日期和设置新日期的界面,如果不需要设置新的日期,直接回车(enter)就行
date /T 就只会显示当前日期,而不会显示设置行日期的界面
D:\>date /T 2020/12/14 周一 D:\>
批处理:
在批处理中通常使用 %date% 来显示日期
echo %date% 默认输出:2020/12/16 周三
可进行切割,切割语法如下:
%varname:~start,length%
start 从 0 开始
示例:
echo %date:~0,4% D:\>echo %date:~0,4% 2020 D:\>
常用语句:
获取年份:%date:~0,4%
获取月份:%date:~5,2%
获取当前日:%date:~8,2%
获取星期:%date:~11,2%
time
dos 终端内获取当前日期并输出设置新日期界面
D:\>time 当前时间: 19:28:54.08 输入新时间: 1 客户端没有所需的特权。 D:\>
这里输出 “客户端没有所需的特权”,是因为在域环境中,有设置。
语法:
D:\>time /?h 显示或设置系统时间。 TIME [/T | time] 显示当前时间设置和输入新时间的提示,请键入 不带参数的 TIME。要保留现有时间,请按 Enter。 如果命令扩展被启用,TIME 命令会支持 /T 命令行开关;该命令行开关告诉 命令只输出当前时间,但不提示输入新时间。
和 date 相同,在批处理中都是 %time% 进行获取时间
D:\>echo %time% 19:28:12.42
同样支持截取操作
获取小时:%Time:~0,2%
获取分钟:%Time:~3,2%
获取秒:%Time:~6,2%
需要注意的是,如果小时大于 9,就是正常的小时,如果小时 小于 10 ,就是空格+小时,不会自动补零。
如果进行传参数的时候就有问题,需要去除空格可以用下面的命令进行去除空格
set "varname=%varname: =%"
例如:
set "date=%date: =%"
总结:
获取当前日期时间:
set date=%Date:~0,4%%Date:~5,2%%Date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2% set "date=%date: =%"
备注:
给的所有示例都是基于 Windows10 中文版的