Windows中的dir命令以取决于操作系统设置的格式显示日期。
例如,当我从计算机上的命令行运行'dir'时,日期显示为'09 / 04/2015'。当我在另一台服务器上运行相同的命令时,我会看到'07 / Aug / 2015'。我认为根据操作系统设置可能有许多不同的格式。
我需要一种方法可以从'dir'命令返回的日期字符串中可靠地解析日期,月份和年份,该命令将在任何Windows操作系统上运行,包括Windows XP。
有谁知道如何强制'dir'命令以特定格式显示日期?
或者,有没有人知道如何识别(从命令行)'dir'命令显示日期的格式?
答案 0 :(得分:2)
解决方案并不完美,我建议不要实施它,除非 非常必要。
更改日期格式时,会设置注册表值
HKCU\Control Panel\International
- &GT;sShortDate REG_SZ <format_Of_date>
其中format_of_date是用户选择的格式。
现在,如果您将此值编辑为方便的格式并保存,dir
命令将为您提供结果中的预期格式。
我说过,这是不可取的,因为更改用户计算机上的自定义设置永远不会好。为了避免这种情况,您可以做的是,在更改之前存储sShortDate
的初始值,并在实施dir
cmd后设置该初始值。
您可以使用此批处理文件验证::
reg export "HKEY_CURRENT_USER\Control Panel\International" C:\DateFormat.reg
reg add "HKEY_CURRENT_USER\Control Panel\International" /f /v "sShortDate" /t
REG_SZ /d "yyyy-MM-dd"
;; dir output always with "yyyy-MM-dd" date format
dir > C:\dir.txt
reg import C:\DateFormat.reg
del C:\DateFormat.reg
pause