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,分别是日期与时间内容的分割符和日期与时间之间的分割符。通常可以设置为:-
(减号),空,以及
空格,我相信会用到这个的应该是在批处理用,所以应该不有人想用冒号的吧。