Appel a un script depuis c# puis recuperer une var - C#/.NET managed - Programmation
Marsh Posté le 23-12-2008 à 15:06:06
Fraer9 a écrit :
renvoi vide, en passant
en tant que FileName et
en tant que args ça donne rien non plus |
non mais sais tu ce qu'est une variable d'environnement ?
Marsh Posté le 23-12-2008 à 15:07:28
Euh... je suis pas sur de ce que j'avance mais la méthode Environment.GetEnvironmentVariable récupère les variables d'environnement de Windows nan ?
TYpe %Windows% = répertoire windows, %TEMP% = répertoire temporaire de l'utilisateur ?
Et dans ton script script_A.bat tu définis %TOTO% comme variable d'environnement c'est ça ?
Marsh Posté le 23-12-2008 à 15:49:46
Harkonnen a écrit : |
C'est une variable définie au niveau de l'os et pouvant être accéder par plusieurs processus ...
Mais effectivement tu as raison :
Code :
|
serai plus exact mais ne marche pas non plus apparemment ProcessStartInfo n'est utile que pour la création d'un processus, si ce processus modifie des variables, ces modifications n'ont pas l'air d'être visible après ...
Marsh Posté le 23-12-2008 à 15:55:16
Ok, pour resumer :
script_A.bat :
set TOTO=toto |
Tu ouvre un shell, tu lance script_A.bat :
c:\script_A.bat |
Dans le meme shell tu fait :
c:\echo %TOTO% |
Ca affiche toto.
Donc je pense que oui, TOTO a été définie comme variable d'environnement ...
Marsh Posté le 24-12-2008 à 16:36:14
Code :
|
Bon c'est un peu brutal comme solution, mais ca marche, si jamais quelqu'un trouve mieux
Marsh Posté le 23-12-2008 à 13:49:43
Salut,
Je voudrais appeler un script .bat depuis mon appli c# puis récupérer la valeur d'une variable définie dans ce script de la même manière qu'avec
call
:
on suppose que dans SCRIPT_A.bat une variable
TOTO
est definie avec
set
SETLOCAL ENABLEDELAYEDEXPANSION
call SCRIPT_A.bat
echo %TOTO%
ENDLOCAL
Le code C#
Environment.GetEnvironmentVariable("TOTO" )
renvoi vide, en passant
cmd.exe
en tant que FileName et
/c "SCRIPT_A.bat"
en tant que args ça donne rien non plus
Quelqu'un a t'il une idée ?
Merci