Máquinas com Windows Server comutadas e geração de string de data em um arquivo em lote produzem resultados diferentes

0

Eu tenho esta linha em um script em lote que eu uso.

set ldt=%Date:~8,2%%Date:~3,2%%Date:~0,2%_%Time:~0,2%%Time:~3,2%%Time:~6,2%

Ele vem funcionando bem e gera texto como o abaixo, desde que o escrevi.

170420_92444

Mas agora na nova máquina (que ainda é o Windows Server 2008 R2) ela gera algo assim.

9/ 0We_184000

Eu não consigo entender por que isso mudou.

    
por Geesh_SO 20.04.2017 / 10:28

1 resposta

1

Não use as variáveis de% date%% time% dependentes de localidade / configurações de usuário. Use o wmic em vez disso:

@Echo off
for /f "tokens=1-3 delims=.+-" %%A in (
  'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set _DT=%%A
Set ldt=%_DT:~2,6%_%_DT:~8,6%
set ldt

Exemplo de saída.

ldt=170420_121402
    
por 20.04.2017 / 12:16