我正在两台(虚拟)机器上工作:
- 首先是一台 Windows 10 机器
- 第二台是 Windows 7 机器
在两者上,短日期格式是相同的:dd.MM.yyyy
在两者上,我都根据命令运行相同的批处理文件DATE
。
我得到的结果与DATE
命令结果的结果有所不同:
- 在 Windows 10 上:
The current date is: st 22.03.2017
- 在 Windows 7 上:
The current date is: 22.03.2017
如您所见,差异是由于今天的名称(st
是捷克语的缩写Wednesday
)的存在。
Windows 10 系统是主系统,所以我的问题是:如何改变 Windows-7 系统以包含星期名称的前两个字母?
作为测试,我已经尝试了以下短日期格式:
dd dd.MM.yyyy // this is better, the length of the format is good,
but it does not start with the initials of the day's name.
dddd dd.MM.yyyy // this starts with the day's name, but completely,
and I only want the first two letters.
同时我进一步研究了这个问题:日期格式似乎在两个地方使用:
- 在使用
DATE
命令行命令时(我需要一种格式xx dd.MM.yyyy
(无论它xx
是什么)进行进一步处理 - 在以下过程中
echo
:for /r %DIRECTORY% %I in ("*.*") do echo %~tfI
我们的想法是显示时间戳和文件名,例如:(
22.03.2016 13:50 <filename>
不带xx
)
答案1
在 Windows 7 中,您必须使用ddd
类似的格式,即 3 个字符,而不是 2 个。
因此你可以使用ddd 日.MM.yyyy。这就是支持的格式。
获得 2 个字符的一种方法是使用批处理文件删除一个字符。
答案2
真是一团糟,但我相信我已经找到了解决这个问题的方法:
要点如下:在 Windows 10 上,即使具有简单的日期格式(如dd.MM.yyyy
),date /T
命令行也会添加当天的第一个字符,因此我们得到以下内容:
date /T
st 22.03.2017
我的同事们已经根据这些“st”字符构建了批处理文件。在较低版本的 Windows 上运行这些批处理文件会出现上述问题。
在批处理文件的开头,我添加了以下行:
DATE=xx %DATE%
(我承认这很幼稚)
这让批处理文件可以在我的 Windows-7 计算机上运行。
为了使其在两个系统上都能运行,我只需要在平台上添加一个检查,例如:
set WINDOWS_10=%ver | findstr /C:"Version 10"%
if "WINDOWS_10"=="" (
set DATE=xx %DATE%)
我还没有在 Windows-10 PC 上检查过,但我相信这会有所帮助。