Primeiro, as datas são inerentemente difíceis em cmd 'puro', já que a saída depende do formato de data abreviada. Isso significa que você pode ter a saída como dd/mm/yyyy
; %código%; yyyy-dd-mm
etc. Normalmente eu aconselho usar o powershell ou o wmic, mas eles provavelmente estão fora de dúvida no seu caso, então dois truques possíveis que podem ajudá-lo:
a) para definir e ler a variável na mesma linha, use a chamada * - observe que mm dd yy
deve ser desfeito antes de executar para que isso funcione corretamente:
a
b) Para remover um dos vários separadores possíveis (mas apenas os únicos, e você deve saber quantos serão), você pode usar set "a=10" & call echo %a%
:% for /f
* (nota: se você tiver controle sobre como o cmd é iniciado, usar for /f "tokens=1-3 delims=-/" %F in ("%DATE%") do echo %F%G%H
ativa a chamada expansão atrasada, para que você possa usar cmd /v:on
)