IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Ma condition OU est tout le temp vraie [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut Ma condition OU est tout le temp vraie
    Bonjour,

    J'ai fais ce petit script en powershell pour faire un backup de repertoires dont le nom est composé de l'année et du numéro de semaine comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    2019_40
    2019_41
    2019_42
    2019_43
    2019_44
    2019_45
    2019_46
    2019_47
    2019_48
    2019_49
    2019_50
    2019_51
    2019_52
    2020_01
    2020_02
    2020_03
    2020_04
    2020_05
    2020_06

    J'aimerais faire le backup de tous les repertoire année - 1 ou les repertoires qui auraient 4 semaines passées.
    j'ai donc écrit ceci :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    # Date 
    $Year = get-date -UFormat %Y
    $WeekNb = get-date -UFormat %V
     
    # List des fichiers a* Zip
    $Dir_To_Zip = Get-ChildItem -path "C:\Temp\LOG Script"
     
    Foreach ($element in $Dir_To_Zip ) 
    {  
    $DirName =  $element.Name  
    echo "FLAG DirName : $DirName"
    # Substring à Gauche
    $DirNameY = $DirName.Substring(0, $DirName.Length -3 )
    echo "FLAG DirNameY : $DirNameY"
    # Substring à Droite
    $DirNameW = $DirName.Substring($DirName.Length -2)
    $DirNameW = $DirNameW.trimstart('0') 
    echo "FLAG DirNameW : $DirNameW"
    $WeekNb =  [Math]::Abs((($WeekNb - 4)))
    echo "FLAG Abs Week : " $WeekNb
     
    if  ($DirNameW -lt $WeekNb  ) -or ( $DirNameY = (($Year - 1))  ))
    { 
    echo "FLAG OutPut ==========> $element.zip" }
    }

    Ce script me donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    FLAG OutPut ==========> 2019_40.zip
    FLAG OutPut ==========> 2019_41.zip
    FLAG OutPut ==========> 2019_42.zip
    FLAG OutPut ==========> 2019_43.zip
    FLAG OutPut ==========> 2019_44.zip
    FLAG OutPut ==========> 2019_45.zip
    FLAG OutPut ==========> 2019_46.zip
    FLAG OutPut ==========> 2019_47.zip
    FLAG OutPut ==========> 2019_48.zip
    FLAG OutPut ==========> 2019_49.zip
    FLAG OutPut ==========> 2019_50.zip
    FLAG OutPut ==========> 2019_51.zip
    FLAG OutPut ==========> 2019_52.zip
    FLAG OutPut ==========> 2020_01.zip
    FLAG OutPut ==========> 2020_02.zip
    FLAG OutPut ==========> 2020_03.zip
    FLAG OutPut ==========> 2020_04.zip
    FLAG OutPut ==========> 2020_05.zip
    FLAG OutPut ==========> 2020_06.zip
    Je ne comprend pourquoi le script fait un zip des repertoire 2020_03, 2020_04, 2020_05, 2020_06 alors que la condition est fausse.

    Merci de votre aide.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    Bonjour

    En fait l'erreur n'était pas dans la condition "ou" mais dans son expression. J'ai corrigé cette comparaison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( $DirNameY = (($Year - 1))  )
    Par celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( (($Year - 1)) -ge $DirNameY )
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/10/2016, 13h51
  2. [XL-2007] Plusieurs conditions applicables sur toutes les lignes
    Par ameura1 dans le forum Excel
    Réponses: 5
    Dernier message: 12/09/2014, 09h51
  3. afficher toutes les images en meme temps
    Par dietrich dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/04/2006, 12h18
  4. Réponses: 9
    Dernier message: 14/12/2005, 21h05
  5. [JFrame] Désiconifier toutes les autres fenêtres en même temps
    Par stoukou dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/10/2005, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo