Gostaria de ter a data formatada como 20160501
When I run the progam from within command line ymd is returned as "20160501" which is what I want.
When I run the top program from Task Scheduler the result I get is "1605"
Usar o %date%
para fornecer uma solução depende das configurações de Localidade do Sistema, Regional e Idioma. Isso explica por que você está obtendo saídas diferentes.
O uso de wmic
, por outro lado, funciona de maneira independente do idioma local, idioma ou formato de data escolhido pelo usuário (Painel de Controle / Regional).
O arquivo de lote a seguir usa wmic
para recuperar a data e a hora (local) no formato especificado do OP, portanto, não sofre a desvantagem de uma solução usando %date%
.
GetDate.cmd:
@echo off
setlocal
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1-3" %%g in ('wmic Path Win32_LocalTime Get Day^,Month^,Year ^| findstr /r /v "^$"') do (
set _day=00%%g
set _month=00%%h
set _year=%%i
)
rem pad with leading zeros
set _month=%_month:~-2%
set _day=%_day:~-2%
set _date=%_year%%_month%%_day%
echo %_date%
endlocal
Notas:
- O arquivo em lote acima é uma versão modificada do exemplo em getdate .
- É facilmente ajustado para atender às suas necessidades exatas.
- Se você decidir que também precisa do tempo (horas, minutos e segundos), consulte minha resposta Imprimir datetime no Windows cmd
Saída :
F:\test>date /t
01/05/2016
F:\test>GetDate
20160501
F:\test>
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- para / f - Comando Loop contra os resultados de outro comando.
- getdate - Exibe a data e a hora independentemente da localidade do SO, idioma ou formato de data escolhido pelos usuários (Painel de Controle / Regional ).
- variáveis - Extrai parte de uma variável (substring).
- wmic - Comando de instrumentação de gerenciamento do Windows.