Question Définition et utilisation de variables \"systemes\"

Plus d'informations
il y a 15 ans 2 mois #8983 par Laurent AQUATIAS
Voici mon probleme :

Je souhaite lancer un programme qui est configuré lors de son lancement par un fichier de paramétrage.
Ce fichier de paramétrage contient des variables qui (dans un cmd) sont définie dans le bat qui lance ce programme.

exemple de la commande DOS (cmd) complete:
[code:1]
lancer.bat application param.txt[/code:1]

lancer.bat contient :
[code:1]set application_name=App1.exe
set Settings_Dir=c:\Dir2
rem execution de application.exe avec param.txt comme parametre
%application% %2[/code:1]


Le fichier param.txt contient d'autres variables nécessaires au bon fonctionnement de l'application :
[code:1]App_Settings_Dir=%Settings_Dir%/User[/code:1]

Mon application doit utiliser la valeur définie dans App_Settings_Dir soit c:\dir2\User

Je cherche à faire la meme chose via un script powershell.

J'ai bien un début de script mais le résultat n'est pas concluant:
Pour que mon application (App1.exe) recupere les bonnes valeurs pour les variables definies dans le fichier param.txt

Je crée mes variables dans le script PS de lancement :lancer.ps1
[code:1]
$Code_Dir=\"$Base_Dir\"+\"\\"+$Code_Version+\"_\"+$Code_Suffixe+\"_\"+$HF_Level
$App_Settings_Dir=$Code_Dir+\"\\"+\"Settings01\"
$Win_Plateform=\"intel_a\"

$env:App_Settings_Dir=\"$App_Settings_Dir\"

$start_command =\"$Code_Dir\$Win_Plateform\App1.exe param.txt \"
Invoke-Expression $start_command[/code:1]


Mon application se lance bien mais son paramétrage n'est pas correcte.
(la variable App_Settings_dir ne contient pas la valeur déclarés dans param.txt)
Dans le prompt PS en faisant un env avant de lancer la commande, je vois [code:1]App_Settings_Dir=%Settings_Dir% [/code:1]
au lieu de
[code:1]App_Settings_Dir=c:\Dir2[/code:1]


Comment puis je faire pour que mon application récuperer les bonnes valeurs pour l'evaluation des varaibles définies dans le fichier param.txt

Merci d'avance pour le coup de main.
Lauradsl.

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

Plus d'informations
il y a 15 ans 2 mois #8984 par xyz
Salut,
une solution :
[code:1]
$env:App_Settings_Dir=\"%Settings_Dir% /User\"
$env:«»Settings_Dir=\"c:\temp\"
$env:App_Settings_Dir
[System.environment]::ExpandEnvironmentVariables($env:App_Settings_Dir)
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 2 mois #8985 par jojo
Hello :laugh:

peux-être une autre solution:

[code:1]

Function Expand-Env($exvar)
{(New-Object -C WScript.Shell).ExpandEnvironmentStrings($exvar)}

$env:App_Settings_Dir=\"%Settings_Dir% /User\"
$env:«»Settings_Dir=\"c:\temp\"

Expand-Env($env:App_Settings_Dir)
\"variable: $(Expand-Env($env:App_Settings_Dir)) \"[/code:1]

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

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