這不是一個新問題,但是由於網上寫的都是針對自己的電腦設置,沒有通用性,而我呢,又需要在不同電腦上使用,因此,這命題一個問題了。其實也沒有什么好說的,直接上代碼。
@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,分別是日期與時間內容的分割符和日期與時間之間的分割符。通常可以設置為:-(減號),空,以及 空格,我相信會用到這個的應該是在批處理用,所以應該不有人想用冒號的吧。
