Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Variables d'environnement script batch

2 réponses
Avatar
Eric Grenon
Bonjour,

Je suis entrain de faire des scripts batch, et dans un de mes script j'ai
besoin de recuperer la variable qui correspond au repertoire temporaire
(dans mon cas c:\temp)
mais la variable d'environement (%temp%) me donne le repertoire temporaire
de l'utilisateur (c:\documents and settings\.....\temp) pas du systeme.
Savez vous comment recupérer la variable correspondant au repertoire
temporaire du systeme ?

Je vous remercie
Eric

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:% ,
Eric Grenon s'est ainsi exprimé:

Bonjour,

Je suis entrain de faire des scripts batch, et dans un de mes script
j'ai besoin de recuperer la variable qui correspond au repertoire
temporaire (dans mon cas c:temp)
mais la variable d'environement (%temp%) me donne le repertoire
temporaire de l'utilisateur (c:documents and settings.....temp)
pas du systeme. Savez vous comment recupérer la variable
correspondant au repertoire temporaire du systeme ?


Oui, mais il faut passer par autre chose que le simple batch.
P.ex. utiliser un script VBS :

"Getvar.vbs" (script universel)
Admet en paramètres :
- le type d'environnement, au choix :
SYSTEM
USER
PROCESS
VOLATILE
- le nom de la variable à récupérer

NB: Il y a un tableau des variables et types ici :
http://www.bellamyjc.org/fr/vbsobj/wsproenvironment.html


------- couper ici -------
Set args = Wscript.Arguments
nbargs=args.count
If nbargs<2 Then wscript.quit
Set Shell=Wscript.CreateObject("WScript.Shell")
Set env=Shell.Environment(args(0))
var=env(args(1))
wscript.echo var
------- couper ici -------

Dans le batch, cela s'utilisera ainsi :

------- couper ici -------
@echo off
....
set tmpfile=valvar.txt
cscript getvar.vbs system temp > tmpfile
for /F %%T in (tmpfile) do set var=%%F
echo la variable Temp du système est %var%
------- couper ici -------


NB: je suis passé par une boucle FOR pour récupérer immédiatement dans le
batch la valeur de la variable.
En effet, si j'avais créé une variable tampon dans le script VBS, je ne
l'aurais pas récupérée tout de suite dans le batch (il aurait fallu fermer
puis réouvrir un shell)

Vérifié, testé avec succès ...


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Eric Grenon
Merci beaucoup pour ces explications

Eric
"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message news:% ,
Eric Grenon s'est ainsi
exprimé:


Bonjour,

Je suis entrain de faire des scripts batch, et dans un de mes script
j'ai besoin de recuperer la variable qui correspond au repertoire
temporaire (dans mon cas c:temp)
mais la variable d'environement (%temp%) me donne le repertoire
temporaire de l'utilisateur (c:documents and settings.....temp)
pas du systeme. Savez vous comment recupérer la variable
correspondant au repertoire temporaire du systeme ?


Oui, mais il faut passer par autre chose que le simple batch.
P.ex. utiliser un script VBS :

"Getvar.vbs" (script universel)
Admet en paramètres :
- le type d'environnement, au choix :
SYSTEM
USER
PROCESS
VOLATILE
- le nom de la variable à récupérer

NB: Il y a un tableau des variables et types ici :
http://www.bellamyjc.org/fr/vbsobj/wsproenvironment.html


------- couper ici -------
Set args = Wscript.Arguments
nbargs=args.count
If nbargs<2 Then wscript.quit
Set Shell=Wscript.CreateObject("WScript.Shell")
Set env=Shell.Environment(args(0))
var=env(args(1))
wscript.echo var
------- couper ici -------

Dans le batch, cela s'utilisera ainsi :

------- couper ici -------
@echo off
....
set tmpfile=valvar.txt
cscript getvar.vbs system temp > tmpfile
for /F %%T in (tmpfile) do set var=%%F
echo la variable Temp du système est %var%
------- couper ici -------


NB: je suis passé par une boucle FOR pour récupérer immédiatement dans le
batch la valeur de la variable.
En effet, si j'avais créé une variable tampon dans le script VBS, je ne
l'aurais pas récupérée tout de suite dans le batch (il aurait fallu fermer
puis réouvrir un shell)

Vérifié, testé avec succès ...


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *