Inquiridor
Script

Pergunta
-
Ola, bom dia...
Estou fazendo um script que se relaciona com a data..
Uma das passagens é:
set dia=%date:~0,2%
echo %dia%
set mes=%date:~3,2%
echo %mes%
set ano=%date:~6,10%
echo %ano%Outra passagem do script é relacionar com o dia anterior, para isso
set /A diaAnterior= %dia%-1
echo Last Day: %diaAnterior%No caso o dia anterior teria que ser 08, ja que o dia de hoje é 09. No entanto, ao executar o script ele afirma :
"09-1"
"Número inválido. As constantes numéricas são decimais <17>,hexadecimais<0x11> ou octais<021>"
Alguem sabe como que faço para arrumar isso?
Outra coisa ao fazer a diferença "set /A diaAnterior= %dia%-1" o resultado sai com o único digito que, no caso de hoje (09/02/2017), sai como 8, mas eu gostaria que o resultado seria com 2 dígitos: " 08". Há alguma maneiro de ajustar isso?
Abraço.
Todas as Respostas
-
Eu sei que já estamos em 17/02/2018, e você já deve ter encontrado a solução
mas como não há nenhum comentário com resposta vou deixar como resolver isto
facilmente.
----------------------------------
(1.Do dia Anterior)
SET /A diaAnterior=%dia%
SET /A diaAnterior=%diaAnterior%-1
(2.Colocar (0) na frente do dia 'se o dia for menor que 10)
IF %diaAnterior% LSS 10 set diaAnterior=0%diaAnterior%
----------------------------------- Editado natobrasil sábado, 17 de fevereiro de 2018 08:38
-
-
Segue o código correto.
-------------------------------------------------------------
set dd=%date:~0,1%
if "%date:~0,1%" EQU "0" (set dd=%date:~1,1%) else set dd=%date:~0,2%set /A diaAnterior=%dd%-1
-------------------------------------------------------------
O mesmo poderá ser feito para o mês, pra fazer a conta caso a data seja 0 ou negativo.
-------------------------------------------------------------
set mm=%date:~3,1%
if "%date:~3,1%" EQU "0" (set mm=%date:~4,1%) else set mm=%date:~3,2%-------------------------------------------------------------
Você fazendo isso, o erro não acontecerá mais ao efetuar uma operação aritmética.