Как уже было отмечено, синтаксический анализ даты и времени полезен только в том случае, если вы знаете формат, используемый текущим пользователем (например, MM / dd / yy или dd-MM-yyyy, просто чтобы назвать два). Это может быть определено, но к тому времени, когда вы выполните все операции выделения и анализа, у вас все равно останется некоторая ситуация, когда используется непредвиденный формат, и потребуется больше настроек.
Вы также можете использовать некоторую внешнюю программу, которая будет возвращать слаг даты в выбранном вами формате, но у этого есть недостатки, связанные с необходимостью распространения утилиты вместе с вашим скриптом / пакетом.
Существуют также пакетные приемы, использующие часы CMOS довольно сырым способом, но это слишком близко к оголенным проводам для большинства людей, а также не всегда предпочтительное место для получения даты / времени.
Ниже приведено решение, которое позволяет избежать вышеуказанных проблем. Да, это создает некоторые другие проблемы, но для моих целей я обнаружил, что это самое простое, понятное и портативное решение для создания меток даты в файлах .bat для современных систем Windows. Это всего лишь пример, но я думаю, вы увидите, как изменить другие форматы даты и / или времени и т. Д.
reg copy "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f
reg add "HKCU\Control Panel\International" /v sShortDate /d "yyMMdd" /f
@REM reg query "HKCU\Control Panel\International" /v sShortDate
set LogDate=%date%
reg copy "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f