none
Script RRS feed

  • 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.

    quinta-feira, 9 de fevereiro de 2017 12:58

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
    sábado, 17 de fevereiro de 2018 08:36
  • Amigo, você chegou a testar seu próprio script? Acredito que não, pois o problema não está na falta do 0 e sim, quando ele aparece.
    terça-feira, 10 de julho de 2018 03:17
  • 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.

    terça-feira, 10 de julho de 2018 04:05