
Я работаю на двух (виртуальных) машинах:
- Во-первых, это машина с 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.
Так что вы можете использоватьддд дд.ММ.гггг. Это поддерживаемый формат.
Чтобы получить 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, но думаю, что это сработает.