如何根据批处理窗口区域设置格式化date?

我有一个batch file,将比较date。 问题是我们需要在不同的设置中testing它,不同的语言意味着不同的date格式。

例如获取Test.log文件的修改date(不知道区域设置date格式是什么)

for %%i in (c:\Test.log) do ( call :testprocess %%~ti ) 

我想在yyyy / MM / dd中格式化Test.log的修改date。

我怎么能不知道区域date的格式是什么?

我找到了一个解决方案。 我失去了我的参考链接。 所以我调整了一些代码,并根据我的需要使用它。

  for %%i in (c:\Test.log) do ( call :testprocess %%~ti ) :testprocess set temptime=%1 

在注册表中搜索关键字International获取iDate和sDate的值。

  set KEY_DATE="HKCU\Control Panel\International" FOR /F "usebackq skip=4 tokens=1,3" %%A IN (`REG QUERY %KEY_DATE% /v iDate 2^>nul`) DO set iDate=%%B FOR /F "usebackq skip=4 tokens=1,3" %%A IN (`REG QUERY %KEY_DATE% /v sDate 2^>nul`) DO set sDate=%%B 

我使用sDate值作为delims =,并使用iDate作为语言环境日期的格式。

  FOR /F "tokens=1-3 delims=%sDate%" %%A IN ("%temptime%") DO ( IF "%iDate%"=="0" ( SET fdd=%%B SET fmm=%%A SET fyyyy=%%C ) IF "%iDate%"=="1" ( SET fdd=%%A SET fmm=%%B SET fyyyy=%%C ) IF "%iDate%"=="2" ( SET fdd=%%C SET fmm=%%B SET fyyyy=%%A ) ) echo %fyyyy%/%fMM%/%fdd% 

你也可以参考ff。 在这里使用。

希望这个帮助给你们。