Funciona bem em ambos os servidores, mas diferentes saídas
Tente o seguinte arquivo em 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%
set _stamp=%_year%%_month%%_day%%_hh%%_mm%%_ss%
copy "C:.txt" "C:\Log_ %_stamp%.txt"
endlocal
Este código ainda está falhando em um determinado servidor, com código de erro 0x80020009
Z:\>wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year ERROR: Code = 0x80020009 Description = Exception occurred. Facility = Dispatch
O código de erro 80041002 indica um repositório wmi ausente ou corrompido na máquina com falha.
The key to solving the problem here is the error code 80041002, which in WMI terms means Object cannot be found. Specifically, this is the COM/OLE subsystem for WMI (aka WBEM) complaining that it cannot find the requested WMI class or value.
A solução é corrigir o repositório WMI:
How to fix a missing or corrupted WMI repository
In order to fix a corrupted WMI repository, first run a disk check (
chkdsk
) to make sure that the corruption is not at the storage level. D’uh. Next, check that the WMI Control snap-in does indeed have difficulty in connecting to WMI; it should complain about ‘Failed to initialize all required WMI classes’:Then pick one of the three kinds of fixes for broken WMI repositories: the simple, the sordid, or the scary:
- Simple: run
winmgmt /salvagerepository
against the local WMI repository- Sordid: restore the WMI repository from a WMI backup (if you have one)
- Scary: re-install Windows from the rescue disk
Fonte Chef no Windows - detectando e corrigindo Problemas do WMI que impedem que o cliente chef execute
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.