Question Appel d'une fonction

Plus d'informations
il y a 3 ans 2 mois #30447 par DEMINFO
Appel d'une fonction a été créé par DEMINFO
Bonjour,
J'ai 2 scripts qui doivent utiliser la même fonction. Je ne voudrai pas mettre le code de la fonction dans chaque script pour simplifier la maintenance. Logiquement, quand j'exécute SCRIPT1 ou SCRIPT2 la valeur de Objet devrait s'afficher ?!?
J'ai fait l'essai en mettant le chemin d'accès mais rien n'y fait (C:\DATA\TEMP\POWERSHELL\TestObjet.ps1 $Objet).
Quelle solution ?
D'avance merci

Le 1er script SCRIPT1.ps1 se trouve dans C:\DATA\TEMP\POWERSHELL et contient :
$Objet="SCRIPT1"
TestObjet $Objet

Le 2ème script SCRIPT2.ps1 se trouve dans C:\DATA\TEMP\POWERSHELL et contient :
$Objet="SCRIPT2"
TestObjet $Objet

La fonction TestObjet.ps1 se trouve dans C:\DATA\TEMP\POWERSHELL et contient :
function TestObjet ($Objet)
   {
     Write-Host "Valeur de Objet="$Objet    
   }

 

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

Plus d'informations
il y a 3 ans 2 mois #30448 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Appel d'une fonction
Salut,
dans ton cas le script déclare une fonction, on doit donc charger le script, puis exécuter la fonction :
cd C:\DATA\TEMP\POWERSHELL
.\TestObjet.ps1
TestObjet.ps1 'Objet'
l'inconvénient est que tu codes en dur le nom répertoire et le code de ton script déclarant la fonction ne doit rien faire d'autre (possible effet de bord).

Ici il y a plusieurs possibilité, celle autour d'un module me semble est préférable puisque le rôle d'un module est de partager du code.

>>pour simplifier la maintenance
Faut voir :-)
Simplifier l'écriture du code certainement.

Tutoriels PowerShell

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

Plus d'informations
il y a 3 ans 2 mois #30453 par DEMINFO
Réponse de DEMINFO sur le sujet Appel d'une fonction
Bonsoir,
Tous mes scripts et fonctions seront toujours dans le même répertoire.
J'ai donc créé un script "Fonctions" qui rassemble 2 fonctions de tests.
Mon nouveau script est :
#Chargement des Fonctions
$CheminScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)
cd $CheminScript
. .\Fonctions.ps1
#Debut des traitements
$Objet="SCRIPT1" ; $Coul="Vert"  ; TestPhrase $Objet $Coul
$Objet="SCRIPT2" ; $Coul="Rouge" ; TestPhrase $Objet $Coul
$A=1 ; $B=2 ; TestConcat $A $B

Le script Fonctions qui rassemble les fonctions est :
function TestPhrase ($Objet,$Coul)
   {
    Write-Host "Valeur=$Objet de couleur $Coul"
   }

function TestConcat ($A,$B)
   {
    Write-Host "Valeur=$A$B"
   }

Je ne sais pas si c'est très "orthodoxe" mais ça répond très bien à mes besoins.
Un GRAND MERCI pour ton aide et tes précieux conseils.
Didier
 

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

Plus d'informations
il y a 3 ans 2 mois #30456 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Appel d'une fonction
>>Je ne sais pas si c'est très "orthodoxe" mais ça répond très bien à mes besoins.
Effectivement c'est une des autres possibilités.
Il existe la variable Automatique $PsScriptRoot qui peu simplifier l'affectation de $CheminScript.

Tutoriels PowerShell
Les utilisateur(s) suivant ont remercié: DEMINFO

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

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