Вы можете использовать WMI, чтобы получить информацию о дате в определенном формате. Проблема с выводом date
(и переменной окружения %date%
) заключается в том, что он очень специфичен для локали.
Если вы выполните:
wmic path win32_localtime get day^,month^,year^ /format:csv
вы увидите результат, который вам нужно обработать.
Следующий скрипт даст вам необходимый вам yyyy-mm-dd
формат (использование дня недели в качестве первичного ключа сортировки не очень хорошая идея):
@echo off
for /f "skip=2, tokens=2-4" delims=," %%a in ('wmic path win32_localtime get day^,month^,year^ /format:csv') do (
set /a ymd = 10000 * %%c + 100 * %%b + %%a
)
set ymd=%ymd:~0,4%-%ymd:~4,2%%ymd:~6,2%
echo %ymd%