
我正在兩台(虛擬)機器上工作:
- 首先是一台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 dd.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 上檢查它,但我相信這會成功。