Пакетные файлы 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.
Тем временем я еще раз рассмотрел проблему: формат даты, кажется, используется в двух местах:
- Во время работы с
DATE
команда командной строки (там мне нужен формат какxx dd.MM.yyyy
(что бы это ниxx
может быть) для дальнейшей обработки - Во время следования
echo
:for /r %DIRECTORY% %I in ("*.*") do echo %~tfI
Идея состоит в том, чтобы показать метку времени и имя файла, что-то вроде:22.03.2016 13:50 <filename>
(безxx
)
2 ответа
Какой беспорядок, но я думаю, что нашел решение этой проблемы:
Дело в следующем: в Windows 10 даже при простом формате даты (например, dd.MM.yyyy
), date /T
Командная строка добавляет первые символы дня, поэтому мы получаем следующее:
date /T
st 22.03.2017
И мои коллеги построили свои пакетные файлы вокруг присутствия этих "святых" персонажей. Запуск этих пакетных файлов в более низких версиях Windows приводит к упомянутым проблемам.
В начале пакетных файлов я добавил строку:
DATE=xx %DATE%
(очень по-детски, я признаю)
Это заставляет пакетные файлы работать на моем компьютере с Windows-7.
Чтобы заставить его работать в обеих системах, мне просто нужно добавить проверку на платформе, что-то вроде:
set WINDOWS_10=%ver | findstr /C:"Version 10"%
if "WINDOWS_10"=="" (
set DATE=xx %DATE%)
Я еще не проверял это на ПК с Windows-10, но я верю, что это поможет.
В Windows 7 вы должны использовать ddd
иметь аналогичный формат, который составляет 3 символа, а не 2.
Таким образом, вы можете использовать DDD DDMM.YYYY. Это поддерживаемый формат.
Один из способов получить 2 символа - удалить один с помощью командного файла.