Пакетные файлы 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. Во время следования 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 символа - удалить один с помощью командного файла.

Другие вопросы по тегам