Обратите внимание, что использование %date%
очень сильно зависит от версии Windows и региона. Каждый язык / регион имеет свои собственные настройки, и пользователи могут изменить это тоже. Не очень надежный способ получить дату.
Самый эффективный способ получить правильную дату - использовать wmic OS Get localdatetime
. Я не уверен, что вы можете получить название месяца таким же образом, поэтому здесь я просто использовал несколько операторов if, чтобы получить название месяца:
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set year=%dt:~0,4%
set month=%dt:~4,2%
set day=%dt:~6,2%
if %month%==01 set month=jan
if %month%==02 set month=feb
if %month%==03 set month=mar
if %month%==04 set month=apr
if %month%==05 set month=may
if %month%==06 set month=jun
if %month%==07 set month=jul
if %month%==08 set month=aug
if %month%==09 set month=sep
if %month%==10 set month=oct
if %month%==11 set month=nov
if %month%==12 set month=dec
robocopy U:\Data\ X:\Private\Backups\FolderName_%day%-%month%-%year%-(%time::=-%) /e
Я знаю, что это не «одна строка», но я думаю, что это самый надежный способ получить дату.