Question Chemin de destination d'un fichier variable en fonction du jour de la semaine

Plus d'informations
il y a 7 mois 2 semaines #33685 par FAURE
Bonjour 

Je débute en powershell et je cherche à réaliser un script powershell pour sauvegarder des fichier ou des répertoires dans des répertoires dont le nom dépend du jour de la semaine.

Ma question est comment indiquer le chemin du répertoire destinataire en syntaxe powershell

$day = (Get-Date).DayOfWeek

switch ( $day )
{
    0 { $result = 'C:\SourceSolde1'    }
    1 { $result = 'C:\SourceSolde2'    }
    2 { $result = 'C:\SourceSolde3'   }
    3 { $result = 'C:\SourceSolde4' }
    4 { $result = 'C:\SourceSolde5'  }
    5 { $result = 'C:\SourceSolde6'    }
    6 { $result = 'C:\SourceSolde7'  }
}


robocopy C:\MyGroups\MINPAIE.defense\100 - Industrialisation, pilotage et qualite\160 - PMO\05 - Outils PMO C:\""$result"""\05 - Outils PMO /E /ZB 

Merci pour votre support

cordialement

hufi

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 2 semaines - il y a 7 mois 2 semaines #33687 par Fabien
Bonjour,

Tu n'es pas loin dans ton script, il suffit de rajouter ".value__" sur la première ligne.
Attention à la numérotation car elle commence par 0 et correspond à Dimanche.

$day = (Get-Date).DayOfWeek.value__

switch ( $day )
{
    1 { $result = 'C:\SourceSolde1'    }
    2 { $result = 'C:\SourceSolde2'    }
    3 { $result = 'C:\SourceSolde3'   }
    4 { $result = 'C:\SourceSolde4' }
    5 { $result = 'C:\SourceSolde5'  }
    6 { $result = 'C:\SourceSolde6'    }
    0 { $result = 'C:\SourceSolde7'  }
}

robocopy "C:\MyGroups\MINPAIE.defense\100 - Industrialisation, pilotage et qualite\160 - PMO\05 - Outils PMO" "$result\05 - Outils PMO /E /ZB"


Fabien
Dernière édition: il y a 7 mois 2 semaines par Fabien.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 2 semaines #33694 par FAURE
Merci je vais regarder cela dans la journée de demain

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 2 semaines #33697 par Arnaud Petitjean
Bonjour Faure ! (Si ton pseudo n'est pas bon, n'hésites pas à le changer)

Pourquoi t'embêter à vouloir récupérer la valeur numérique du jour de la semaine. Tu pourrais plutôt mettre dans ton switch les valeurs des jours, ex : 'Lundi', 'Mardi', etc... Cela rendrait ton code plus lisible et compréhensible.
Sans oublier de mettre des guillemets autour des valeurs.

Sinon, une alternative pour convertir ton jour de la semaine est de le convertir en Int. Comme ceci :
[int](Get-Date).DayOfWeek

Le type d'objet retourné par la propriété DayOfWeek est un Enum, et on peut convertir les Enum en nombre entier.

Dernière chose, penses à ajouter l'instruction Break dans chaque condition de ton Switch. Cela permet à PowerShell de gagner du temps d'exécution car si la condition vaut 0, cela ne sert à rien d'évaluer les autres conditions.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.104 secondes
Propulsé par Kunena