%date%
дает вам дату в выбранной вами локали.Для меня это ISO 8601, т.е. YYYY-MM-DD, но во многих других случаях это, вероятно, что-то безумное, например, MM / DD / YY.Особенно в последнем случае возникнут проблемы, поскольку косая черта там, вероятно, недопустима (или интерпретируется как разделитель иерархии).
Вы можете получить текущую дату в удобной (и переносимой) форме с WMI через
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined mydate set mydate=%%x
set mydate=%mydate:~0,8%
Тогда у вас есть текущая дата в форме ГГГГММДД в %mydate%
.