Seu %date% contém algum caractere reservado (s) , por exemplo / (barra invertida). Como %date% depende strongmente das configurações de localidade do usuário, eu usaria a próxima solução independente de localidade com data em yyyymmdd format :
SETLOCAL EnableExtensions
for /F "delims=" %%G in ('wmic os get LocalDateTime /value^|find "="') do set %%G
copy c:\mydir\file.zip "c:\temp\file-%LocalDateTime:~0,8%.zip"
Recursos (leitura obrigatória, incompleta):
- (referência de comando) Um índice A-Z da linha de comando do Windows CMD
- (particularidades adicionais) Sintaxe da linha de comando do shell do Windows CMD
- (
%%~G,%~1etc. página especial) Argumentos da linha de comando (parâmetros) - (
%LocalDateTime:~0,8%") Extrair parte de uma variável (substring)