Partage
  • Partager sur Facebook
  • Partager sur Twitter

[POWERSHELL] comparer des dates

    7 juin 2022 à 11:45:24

    Bonjour,

    Je cherche à comparer la date du jour avec une autre date passé en variable.

    $dateinstallation="17/09/2021"
    If((get-date -Format "dd/MM/yyyy") -ge (get-date "$dateInstallation" -Format "dd/MM/yyyy"))
    {
    write-host "la date du jour est supérieur ou égale à la date d installation."
    }
    else
    {
    write-host "la date du jour est inférieur à la date d installation."
    }

    Pourtant cela  ne semble pas fonctionner, et je ne comprends pas pourquoi ? est ce qu'il y aurai de problème de comparaison avec le style américain ou anglais ?

    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2022 à 21:05:58

      Bonsoir,

      Tu peux passer par [DateTime]::Parse pour faire ce que tu souhaites :

      $dateinstallation="17/09/2021"
      $dateactuel=get-date -Format "dd/MM/yyyy"
      If(([DateTime]::Parse($dateactuel)) -ge ([DateTime]::Parse($dateInstallation)))
      {
          write-host "la date du jour est supérieur ou égale à la date d installation."
      }
          else
      {
          write-host "la date du jour est inférieur à la date d installation."
      }

      Source : https://stackoverflow.com/questions/14359053/why-does-powershell-always-use-us-culture-when-casting-to-datetime

      -
      Edité par Zaibai 13 juin 2022 à 19:32:33

      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2022 à 10:19:15

        ok sa semble fonctionner.

        J'ai aussi l'impression que cela fonctionne si l'on inverse les jours et les années comme ceci :

        If((get-date -Format "yyyy/MM/dd") -ge (get-date "$dateInstallation" -Format "yyyy/MM/dd")

        Mais c'est moche.

        • Partager sur Facebook
        • Partager sur Twitter
          13 juin 2022 à 18:11:03

          l'opérateur -ge va faire une comparaison entre les chaines de textes correspondant aux dates (à cause de l'option -Format), donc c'est pour ça que ça fonctionne en mettant la date à l'envers 

          Si tu supprimes le paramètre -Format "dd/MM/yyyy", cela devrait fonctionner (il faut peut-être faire attention au cas où il peut compliquer de dire si le jour peut être un mois sur les os anglais)

          • Partager sur Facebook
          • Partager sur Twitter

          [POWERSHELL] comparer des dates

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown