%date%
está apresentando um formato incorreto para o comando, a ajuda diz que a opção /D
espera o formato m-d-y
, enquanto echo %date%
forneceria Tue 11/26/2013
. Significa que você precisa reformatar a data para estar em conformidade.
Acho que você pode corrigir isso com:
@echo off
:GetDate
for /f "skip=1 tokens=1-3" %%a in ('WMIC Path Win32_LocalTime Get Day^,Month^,Year') ^
do (
set mydate=%%b-%%a-%%c
goto CopyScript
)
:CopyScript
xcopy /e /y /v /d:%mydate% %reportsDataPath% TMP\
Atualização # 1
Para os futuros visitantes, acredito que esta atualização lhe dará o formato de data correto, independentemente da região. Se alguém de outra localidade (fora dos EUA e que usa um formato diferente de mm / dd / aaaa por padrão) puder verificar, isso seria incrível.
Atualização nº 2
Usando o powershell, você também pode obter isso (os comandos cmd
ainda funcionam no Powershell, mas a funcionalidade geral é massivamente expandida).
Get-Date -Format MM-dd-yyyy