НЕЗАВИСИМОСТЬ ЯЗЫКА:
Решение Andrei Coscodan зависит от языка, поэтому попытаться исправить это - зарезервировать все теги для каждого поля: год, месяц и день на целевых языках. Рассмотрим португальский и английский, после разбора сделаем окончательный набор как:
set Year=%yy%%aa%
set Month=%mm%
set Day=%dd%
Посмотрите на настройку года, я использовал оба тега с английского и португальского, у меня это сработало в Бразилии, где эти два языка наиболее распространены в установках Windows. Я ожидаю, что это будет работать и для некоторых языков с латинским происхождением, таких как французский, испанский и т. Д.
Ну, полный сценарий может быть:
@echo off
setlocal enabledelayedexpansion
:: Extract date fields - language dependent
for /f "tokens=1-4 delims=/-. " %%i in ('date /t') do (
set v1=%%i& set v2=%%j& set v3=%%k
if "%%i:~0,1%%" gtr "9" (set v1=%%j& set v2=%%k& set v3=%%l)
for /f "skip=1 tokens=2-4 delims=(-)" %%m in ('echo.^|date') do (
set %%m=!v1!& set %%n=!v2!& set %%o=!v3!
)
)
:: Final set for language independency (English and Portuguese - maybe works for Spanish and French)
set year=%yy%%aa%
set month=%mm%
set day=%dd%
:: Testing
echo Year:[%year%] - month:[%month%] - day:[%day%]
endlocal
pause
Надеюсь, это поможет кому-то, имеющему дело с разными языками.