Question
meilleure manière de gérer des constantes
- Thomas Delahaye
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 11 ans 7 mois #12579
par Thomas Delahaye
meilleure manière de gérer des constantes a été créé par Thomas Delahaye
Bonjour à tous,
Je cherche à savoir comment faire pour créer un fichier de constantes(variables) que je pourrais utiliser dans mes autres scripts.
Je voudrais faire cela proprement, à savoir que je suis en train de créer un script \"parent\" Ps1 qui lancera tous les scripts \"enfants\".
Dans tous ces scripts, je vais avoir besoin de récupérer la valeur des constantes(variables).
Pour mieux vous expliquer, voici mon architecture très simplifiée :
===============================
Variables.ps1
[code:1]$MonDossier =\"C:\Script\"
$NbLignes = 3[/code:1]
===============================
Parent.ps1
[code:1]#import des variables à faire ici
powershell \"$MonDossier\Enfant.ps1\"[/code:1]
===============================
Merci de votre aide
Thomas
Message édité par: tdelahaye, à: 21/08/12 10:52<br><br>Message édité par: tdelahaye, à: 21/08/12 10:53
Je cherche à savoir comment faire pour créer un fichier de constantes(variables) que je pourrais utiliser dans mes autres scripts.
Je voudrais faire cela proprement, à savoir que je suis en train de créer un script \"parent\" Ps1 qui lancera tous les scripts \"enfants\".
Dans tous ces scripts, je vais avoir besoin de récupérer la valeur des constantes(variables).
Pour mieux vous expliquer, voici mon architecture très simplifiée :
===============================
Variables.ps1
[code:1]$MonDossier =\"C:\Script\"
$NbLignes = 3[/code:1]
===============================
Parent.ps1
[code:1]#import des variables à faire ici
powershell \"$MonDossier\Enfant.ps1\"[/code:1]
===============================
Merci de votre aide
Thomas
Message édité par: tdelahaye, à: 21/08/12 10:52<br><br>Message édité par: tdelahaye, à: 21/08/12 10:53
Connexion ou Créer un compte pour participer à la conversation.
- Eric
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 11 ans 7 mois #12580
par Eric
No pain,no gain.
Réponse de Eric sur le sujet Re:meilleure manière de gérer des constantes
Bonjour,
A ma connaissance, si tu préfixes tes variables par \"$Global:\" ça doit fonctionner.
Genre :
Fichier variables.ps1
[code:1]
$Global:v1 = \"aaa\"
[/code:1]
et
Fichier main.ps1
[code:1]
.\variables.ps1
write-host $v1
[/code:1]
Normalement $v1 s'affichera.<br><br>Message édité par: tofu, à: 21/08/12 11:19
A ma connaissance, si tu préfixes tes variables par \"$Global:\" ça doit fonctionner.
Genre :
Fichier variables.ps1
[code:1]
$Global:v1 = \"aaa\"
[/code:1]
et
Fichier main.ps1
[code:1]
.\variables.ps1
write-host $v1
[/code:1]
Normalement $v1 s'affichera.<br><br>Message édité par: tofu, à: 21/08/12 11:19
No pain,no gain.
Connexion ou Créer un compte pour participer à la conversation.
- Thomas Delahaye
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 11 ans 7 mois #12582
par Thomas Delahaye
Réponse de Thomas Delahaye sur le sujet Re:meilleure manière de gérer des constantes
Bonjour tofu,
Merci pour ta réponse.
ça fonctionne lorsque je suis en mode console, mais dès que j'ouvre le script parent.ps1 dans \"Powershell ISE\" et que j'essaye de l'executer, j'ai le message suivant :
\"Le terme « .\_Variables.ps1 » n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable\"
Ce qui n'est pas très pratique pour dévelloper des scripts ...
Existe t'il une autre manière de gérer les variables ?
Sinon, je me résoudrais à insérer toutes mes variables dans parent.ps1.
Merci encore
Merci pour ta réponse.
ça fonctionne lorsque je suis en mode console, mais dès que j'ouvre le script parent.ps1 dans \"Powershell ISE\" et que j'essaye de l'executer, j'ai le message suivant :
\"Le terme « .\_Variables.ps1 » n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable\"
Ce qui n'est pas très pratique pour dévelloper des scripts ...
Existe t'il une autre manière de gérer les variables ?
Sinon, je me résoudrais à insérer toutes mes variables dans parent.ps1.
Merci encore
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 11 ans 7 mois #12583
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:meilleure manière de gérer des constantes
Salut,
tofu écrit:
Dans ce cas il faut charger le script dans la porté courante (dotsource) :
[code:1]
. .\Variables.ps1
[/code:1]
Et s'il s'agit de déclaration de vrai constante, qui ne change pas durant l'exécution du script, on peut utiliser ceci :
[code:1]
#Nom du répertoire d'hébergement du mécanisme côte client
New-Variable PathClient -Option Constant -Value \"C:\Test\" -Description \"Chemin d'installation de la partie cliente... .\" -EA SilentlyContinue
[/code:1]
Quant au pb sous ISE, essaie de te placer dans le répertoire l'hébergeant.
tofu écrit:
Oui, mais si on peut éviter l'usage de la portée Global: autant le faire.A ma connaissance, si tu préfixes tes variables par \"$Global:\" ça doit fonctionner.
Dans ce cas il faut charger le script dans la porté courante (dotsource) :
[code:1]
. .\Variables.ps1
[/code:1]
Et s'il s'agit de déclaration de vrai constante, qui ne change pas durant l'exécution du script, on peut utiliser ceci :
[code:1]
#Nom du répertoire d'hébergement du mécanisme côte client
New-Variable PathClient -Option Constant -Value \"C:\Test\" -Description \"Chemin d'installation de la partie cliente... .\" -EA SilentlyContinue
[/code:1]
Quant au pb sous ISE, essaie de te placer dans le répertoire l'hébergeant.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Thomas Delahaye
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 11 ans 7 mois #12584
par Thomas Delahaye
Réponse de Thomas Delahaye sur le sujet Re:meilleure manière de gérer des constantes
Merci Laurent.
Je viens de trouver quelque chose, mais je ne sais pas trop quoi en penser vis à vis des ressources utilisée ...
[code:1]
$ScriptPath = (Split-Path ((Get-Variable MyInvocation).Value).MyCommand.Path)
$MesVariables = $ScriptPath + \"\_Variables.ps1\"
. $MesVariables
Write-Host \"Chemin: $MonDossier\"
[/code:1]
Après, j'ai accès à toutes mes variables ...
Est-ce plus propre de créer ses variables avec New-Variable ?
Merci
Je viens de trouver quelque chose, mais je ne sais pas trop quoi en penser vis à vis des ressources utilisée ...
[code:1]
$ScriptPath = (Split-Path ((Get-Variable MyInvocation).Value).MyCommand.Path)
$MesVariables = $ScriptPath + \"\_Variables.ps1\"
. $MesVariables
Write-Host \"Chemin: $MonDossier\"
[/code:1]
Après, j'ai accès à toutes mes variables ...
Est-ce plus propre de créer ses variables avec New-Variable ?
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 11 ans 7 mois #12585
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:meilleure manière de gérer des constantes
tdelahaye écrit:
C'est effectivement une solution mais cela suppose que tous tes scripts, partageant les constantes, soient dans le même répertoire. Sinon si tu utilises la v2 un module peut être une autre solution, plus tard
tdelahaye écrit:
Si tu n'utilises pas de constante, ou tout autres paramètrage de ce cmdlet, pas besoin de New-Variable.
J'ai pensé à cette approche, mais une chose à la fois.je ne sais pas trop quoi en penser vis à vis des ressources utilisée ...
C'est effectivement une solution mais cela suppose que tous tes scripts, partageant les constantes, soient dans le même répertoire. Sinon si tu utilises la v2 un module peut être une autre solution, plus tard
tdelahaye écrit:
Non, mais New-Variable te permet de préciser ReadOnly.Est-ce plus propre de créer ses variables avec New-Variable ?
Si tu n'utilises pas de constante, ou tout autres paramètrage de ce cmdlet, pas besoin de New-Variable.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.072 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- meilleure manière de gérer des constantes