Windows-10 批处理文件基于 DATE 命令,如何在较低 Windows 版本上使用

Windows-10 批处理文件基于 DATE 命令,如何在较低 Windows 版本上使用

我正在两台(虚拟)机器上工作:

  • 首先是一台 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.

同时我进一步研究了这个问题:日期格式似乎在两个地方使用:

  1. 在使用DATE命令行命令时(我需要一种格式
    xx dd.MM.yyyy(无论它xx是什么)进行进一步处理
  2. 在以下过程中echofor /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 上检查过,但我相信这会有所帮助。

相关内容