我有一个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。 在这里使用。
希望这个帮助给你们。