Batch批处理获取当前时间

这不是一个新问题,但是由于网上写的都是针对自己的电脑设置,没有通用性,而我呢,又需要在不同电脑上使用,因此,这命题一个问题了。其实也没有什么好说的,直接上代码。

@ECHO OFF 
set split=-
set datetimesplit= 

for /f "tokens=1,2,3,4,*" %%i in ('reg query "HKCU\Control Panel\International" ^| find /i "sShortDate"') do SET "dateformat=%%k" 
IF "%dateformat%" == "M/d/yyyy"   set A_DATE=%date:~6,4%%split%%date:~0,2%%split%%date:~3,2%
IF "%dateformat%" == "M/d/yy"     set A_DATE=20%date:~6,2%%split%%date:~0,2%%split%%date:~3,2%
IF "%dateformat%" == "MM/dd/yy"   set A_DATE=20%date:~6,2%%split%%date:~0,2%%split%%date:~3,2%
IF "%dateformat%" == "MM/dd/yyyy" set A_DATE=%date:~6,4%%split%%date:~0,2%%split%%date:~3,2%
IF "%dateformat%" == "yy/MM/dd"   set A_DATE=20%date:~0,2%%split%%date:~3,2%%split%%date:~6,2%
IF "%dateformat%" == "yyyy-MM-dd" set A_DATE=%date:~0,4%%split%%date:~5,2%%split%%date:~8,2%
IF "%dateformat%" == "dd-MMM-yy"  set A_DATE=20%date:~7,2%%split%%date:~3,3%%split%%date:~0,2%
set A_NOW=%A_DATE%%datetimesplit%%time:~0,2%%split%%time:~3,2%%split%%time:~6,2%

echo %A_NOW%

其中有两个可以设置的地方,就是split和datetimesplit,分别是日期与时间内容的分割符和日期与时间之间的分割符。通常可以设置为:-(减号),空,以及 空格,我相信会用到这个的应该是在批处理用,所以应该不有人想用冒号的吧。

posted @ 2019-03-19 23:42  Troy_Daniel  阅读(1387)  评论(0编辑  收藏  举报