%DATE%
І %TIME%
змінні середовища забезпечують поточну дату і час на машинах Windows , в командному рядку , так і всередині пакетного файлу.
На жаль, ці значення усвідомлюють локально! Це означає, що, скажімо, на німецькій машині ви отримаєте
26.1.2011
замість
2011-26-01
це вкручує сортування, якщо ви хочете використовувати цю змінну в імені файлу.
Чи є який-небудь простий спосіб одержати YYYY-MM-DD
рядок дати, що не знає локаль, у пакетному файлі Windows?
На даний момент я працюю з цим досить дивакуватим вирішенням:
for /f "tokens=1,2,3,4 delims=. " %%i in ('date /t') do set date=%%k-%%j-%%i
echo %date%
але це зараз специфічно для німецької мови - очевидно, абсолютно незалежне рішення було б набагато приємніше.
ОС, про яку йдеться, - це сервер 2008. Я дуже вважаю за краще не використовувати сторонній інструмент, якщо це можливо.