Como posso obter um formato de data e hora padrão que ignore as configurações regionais?
Use o seguinte arquivo de lote (que é a maneira correta de analisar a saída de hora local de wmic
):
@echo off
setlocal
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1-6" %%g in ('wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year ^| findstr /r /v "^$"') do (
set _day=00%%g
set _hours=00%%h
set _minutes=00%%i
set _month=00%%j
set _seconds=00%%k
set _year=%%l
)
rem pad with leading zeros
set _month=%_month:~-2%
set _day=%_day:~-2%
set _hh=%_hours:~-2%
set _mm=%_minutes:~-2%
set _ss=%_seconds:~-2%
rem use YYYYmmDD_HHmmSS format for the timestamp
set _stamp=%_year%%_month%%_day%_%_hh%%_mm%%_ss%
ren R: %_stamp%
endlocal
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 o 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.