Question powershell $Env variable et perl
- Albert
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 38
- Remerciements reçus 0
il y a 12 ans 6 mois #15963
par Albert
powershell $Env variable et perl a été créé par Albert
Salut,
J'ai un problème combinant perl et powershell, donc peut etre que cela vous est déjà arrivé.
Enfaite j'ai un script de variable d'environnement en powershell qui contient simplement des set de variable :
[code:1]
$Env:ORACLE_HOME=\"C:\app\Baueiuh\product\11.2.0\dbhome_1\"
$Env:«»PATH=\"$Env:ORACLE_HOME\bin;$Env:«»PATH\"
...[/code:1]
Je veux éxecuter ce script pour avoir mes variables et les récupérer dans un script perl. J'arrive à executer le script depuis perl de cette manière :
[code:1]my $pwspath = \"c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe\";
my $pathEnv = \".\\setvariable_test.ps1\";
system(\"$pwspath $pathEnv\"«»);
[/code:1]
Le script powershell s'éxecute bien mais quand j'essaye de récupérer les variable elles sont vides :
[code:1]my $ORA_HOME = $ENV{'ORACLE_HOME'};[/code:1]
Pourtant si je set les variables depuis ma console powershell à la main j'arrive bien à les récupérer dans perl, si j'éxecute le script powershell à la main et que j'essaye de les récupérer dans perl cela fonctionne également. Est ce que quelqu'un a déjà eu un problème de porté de ce genre ?<br><br>Message édité par: FlqX, à: 16/09/13 15:53
J'ai un problème combinant perl et powershell, donc peut etre que cela vous est déjà arrivé.
Enfaite j'ai un script de variable d'environnement en powershell qui contient simplement des set de variable :
[code:1]
$Env:ORACLE_HOME=\"C:\app\Baueiuh\product\11.2.0\dbhome_1\"
$Env:«»PATH=\"$Env:ORACLE_HOME\bin;$Env:«»PATH\"
...[/code:1]
Je veux éxecuter ce script pour avoir mes variables et les récupérer dans un script perl. J'arrive à executer le script depuis perl de cette manière :
[code:1]my $pwspath = \"c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe\";
my $pathEnv = \".\\setvariable_test.ps1\";
system(\"$pwspath $pathEnv\"«»);
[/code:1]
Le script powershell s'éxecute bien mais quand j'essaye de récupérer les variable elles sont vides :
[code:1]my $ORA_HOME = $ENV{'ORACLE_HOME'};[/code:1]
Pourtant si je set les variables depuis ma console powershell à la main j'arrive bien à les récupérer dans perl, si j'éxecute le script powershell à la main et que j'essaye de les récupérer dans perl cela fonctionne également. Est ce que quelqu'un a déjà eu un problème de porté de ce genre ?<br><br>Message édité par: FlqX, à: 16/09/13 15:53
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 6 mois #15964
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:powershell $Env variable et perl
Salut,
concernant tes tests nous ne savons pas si tu exécutes Perl depuis la session PS.
Si tu exécutes ton script dans lequel tu crées des variable, leurs durée de vie est celle du process en cours. Il est donc normal de ne pas les retrouver dans le process appelant.
Il faut utiliser des API, mais je ne me souviens plus lesquelles
concernant tes tests nous ne savons pas si tu exécutes Perl depuis la session PS.
Si tu exécutes ton script dans lequel tu crées des variable, leurs durée de vie est celle du process en cours. Il est donc normal de ne pas les retrouver dans le process appelant.
Il faut utiliser des API, mais je ne me souviens plus lesquelles
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 6 mois #15965
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:powershell $Env variable et perl
Consulte ce
code
ou
celui-ci
. A toi de voir si cela peut t'aider, je n'ai pas testé si seul l'appelant peut être ciblé au lieu de tous les process.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Albert
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 38
- Remerciements reçus 0
il y a 12 ans 6 mois #15970
par Albert
Réponse de Albert sur le sujet Re:powershell $Env variable et perl
Je me doute que le problème vient de la portée, mais je trouve ça dommage pour des variables d'environnement... En général j'exécute ce script en utilisant \"invoke-expression\" dans mes autres scripts powershell. Mais la \"system\" de perl n'a pas l'air de me donner la même portée. Mon autre solution revient à utiliser le script d'env comme un fichier texte et de récupérer les infos à l'aide de regex dans perl, ça ne me plais pas vraiment mais c'est surement le moyen le plus simple ...
Je pense pas pouvoir réutiliser le code que tu m'as donné car je n'ai pas forcément de version 2 de powershell partout.
Merci.
Je pense pas pouvoir réutiliser le code que tu m'as donné car je n'ai pas forcément de version 2 de powershell partout.
Merci.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 6 mois #15972
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:powershell $Env variable et perl
Tu ne peux pas manipuler les variables d'environnement directement sous perl ?
Pourquoi passer par un script PS ?
Pourquoi passer par un script PS ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Albert
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 38
- Remerciements reçus 0
il y a 12 ans 6 mois #15973
par Albert
Réponse de Albert sur le sujet Re:powershell $Env variable et perl
Si, je peux les manipuler avec perl mais lorsque je les set depuis le script powershell (lancé depuis le script perl) je n'arrive pas à les avoirs.
Je passe par un script PS pour set mes variables pour tout mes scripts (qui sont en PS) sauf que la j'ai une demande spécifique perl et dans un soucis d'automatisation je veux continuer d'utiliser ce script.
Je passe par un script PS pour set mes variables pour tout mes scripts (qui sont en PS) sauf que la j'ai une demande spécifique perl et dans un soucis d'automatisation je veux continuer d'utiliser ce script.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.104 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- powershell $Env variable et perl