bat获取系统时间戳

背景

由于产品线版本以及客户众多,因此在某个客户的设备出现问题时需要根据其软件版本出补丁,在打补丁的时候需要备份原来的文件,避免因为补丁替换使原文件丢失。

相关知识

中文版OS

(1)Windows下DOS窗口date的结果 2019/03/21 周六,日期格式:YYYY-MM-DD 

日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)

年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位

(2)Windows下DOS窗口time的结果 9:15:35.41,时间格式:HH:MM:SS

时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)

时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位

英文版OS

 

(1)Windows下DOS窗口date的结果 Thu 03/21/2019 周六,日期格式:MM-DD-YYYY 

日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)

年份从第10位开始截取4位,月份从第4位开始截取2位,日期从第7位开始截取2位

(2)Windows下DOS窗口time的结果 9:18:47.65,时间格式:HH:MM:SS,此格式同中文版OS,不再赘述。

BAT实现及结果

中文版OS

bat

set filename=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

set "filename=%filename: =0%"

echo %filename%

结果

英文版OS

bat

set filename=%date:~10,4%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2%%time:~6,2%
set "filename=%filename: =0%"
echo %filename%

结果

你可能感兴趣的:(脚本)