Script em lote ou conjunto de comandos para extrair os campos de data

0

Estou tentando criar um arquivo de lote para fazer backup dos meus dados em intervalos regulares no Windows usando um script em lotes.

Eu preciso do parâmetro de data e dos campos do formato exibido (mês, dia e ano). tudo funciona bem quando estou usando delimitadores inicialmente. Mas quando altero o formato de data de dd-mm-yyyy para yyyy-mm-dd , tudo falha.

Portanto, existe algum formato genérico para extrair os campos ( mm,dd,yyyy ) mesmo que o formato varie.

Obrigado.

    
por Avinash Reddy 29.03.2013 / 21:16

1 resposta

1

A única maneira segura de obter um tipo de data genérica é a seguinte (esperamos que seja independente das configurações locais):

@echo off &setlocal
for /f "tokens=2*" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate^|find "REG_SZ"') do set "ssShortDate=%%b"
reg add "HKCU\Control Panel\International" /f /v sShortDate /d "dd MM yyyy" >nul
set "cdate=%date%"
reg add "HKCU\Control Panel\International" /f /v sShortDate /d "%ssShortDate%" >nul
for /f "tokens=1-3" %%i in ("%cdate%") do set "day=0%%i"&set "month=0%%j"&set "year=%%k"
set "day=%day:~-2%"
set "month=%month:~-2%"
echo.%year%-%month%-%day%
endlocal
    
por 30.03.2013 / 14:48